万能复选框全选(反选)/选项提取/搜索方案

aspx代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="S2.aspx.cs" Inherits="S2" %>
<%@  Import   Namespace="System.Data"   %>
<%@  Import   Namespace="System.Data.SqlClient"   %>
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="System.Collections.Generic" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="Scripts/jquery-1.7.1.min.js"></script>
    <title></title>
</head>
<body>
    
    <form id="form1" runat="server">
    <div>
        <%DataClassesDataContext Context = new DataClassesDataContext(); %>
        <%var Query = Context.House.Select(p => p.Area).Distinct(); %>
        <%var Query2 = Context.House.Select(p => p.RentType).Distinct(); %>
        <%var Query3 = Context.House.Select(p => p.HouseType).Distinct(); %>
        <table>
            <tr>
                <td style="text-align: right">区域:</td>
                <td><input type="checkbox" name="all" id="checkallarea" onclick="checkAll('area', 'checkallarea')"/>全选</td>        
                <%foreach (var item in Query)
                {%>
                <td><input type="checkbox" name="area" onclick="resAll('area','checkallarea')" value="<%=item.ToString()%>"/><%=item.ToString()%></td>
                <%}%>
            </tr>
            <tr>
                <td style="text-align: right">租赁类型:</td>
                <td><input type="checkbox" name="all" id="allrenttype" onclick="checkAll('renttype','allrenttype')" />全选</td>
                <%foreach (var item in Query2)
                {%>
                <td><input type="checkbox" name="renttype" onclick="resAll('renttype', 'allrenttype')" value="<%=item.ToString() %>"/><%=item.ToString()%></td>
                <%}%>
            </tr>
            <tr>
                <td style="text-align: right">房屋类型:</td>
                <td><input type="checkbox" name="all" id="allhousetype" onclick="checkAll('housetype','allhousetype')" />全选</td>
                <%foreach (var item in Query3)
                {%>
                <td><input type="checkbox" name="housetype" onclick="resAll('housetype', 'allhousetype')" value="<%=item.ToString() %>"/><%=item.ToString()%></td>
                <%}%>
            </tr>
            <tr>
                <td style="text-align: right">关键字:</td>
                <td colspan="2"><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
            </tr>
        </table>
        <%--这段JS是确定全选或反选的--%>
        <script type="text/javascript" >
        function checkAll(name,id){
            var d = document,
            items=d.getElementsByName(name),
            itemall = d.getElementById(id),
            len = items.length;
            for(var i=0;i<len;i++){
                items[i].checked=itemall.checked;
            }
        }
        function resAll(name,id){
            var d = document,
            items=d.getElementsByName(name),
            itemall = d.getElementById(id),
            ite=0;
            for(var i=0;i<items.length;i++){
                if(items[i].checked){
                 ite++;
                }
            }
            if(ite==items.length-1&&itemall.checked){
                itemall.checked=false;
            }
            if(ite==items.length&&!itemall.checked){
                itemall.checked=true;
            }
        }
        </script>
        
    </div>
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="搜索" />
                    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="取消" />
                    <asp:Repeater ID="Repeater1" runat="server">
                        <HeaderTemplate>
                            <table border="1">
                                <tr>
                                    <td>关键字</td>
                                    <td>区域</td>
                                    <td>使用面积</td>
                                    <td>租金</td>
                                    <td>租赁类型</td>
                                    <td>房屋类型</td>
                                </tr>
                            
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr>
                                <td><%#Eval("KeyWord") %></td>
                                <td><%#Eval("Area") %></td>
                                <td><%#Eval("SquareMeter") %></td>
                                <td><%#Eval("Rent","{0:c}") %></td>
                                <td><%#Eval("RentType") %></td>
                                <td><%#Eval("HouseType") %></td>
                            </tr>
                        </ItemTemplate>
                        <FooterTemplate>
                            </table>
                        </FooterTemplate>
                    </asp:Repeater>
                    <asp:Label ID="Label1" runat="server" ForeColor="#00CC00" Text="查询成功" Visible="False"></asp:Label>
                    <asp:Label ID="Label2" runat="server" ForeColor="Red" Text="未找到相应数据" Visible="False"></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

CS代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class S2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            First();
        }
    }
    public void First()
    {
        Repeater1.DataSource = new HouseDA().Select(null);
        Repeater1.DataBind();
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        First();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        //查询条件
        Label1.Visible = false;
        Label2.Visible = false;
        string[] Area = null;
        string[] RentType = null;
        string[] HouseType = null;
        string KeyWords = null;
        if (Request.Form["area"] != null)
        {
            Area = Request.Form["area"].ToString().Split(',');
        }
        if (Request.Form["renttype"] != null)
        {
            RentType = Request.Form["renttype"].ToString().Split(',');
        }
        if(Request.Form["housetype"] != null)
        {
            HouseType = Request.Form["housetype"].ToString().Split(',');
        }
        if(TextBox1.Text!=null)
        {
            KeyWords = TextBox1.Text;
        }

        DataClassesDataContext _context = new DataClassesDataContext();
        //查询
        var queryarea = _context.House.AsQueryable();
        var queryrent = _context.House.AsQueryable();
        var queryhouse = _context.House.AsQueryable();
        var querykeyword = _context.House.AsQueryable();

        if(Area!=null)
        {
            queryarea = _context.House.Where(p => Area.Contains(p.Area));
        }
        if(RentType!=null)
        {
            queryrent = _context.House.Where(p => RentType.Contains(p.RentType));
        }
        if (HouseType != null)
        {
            queryhouse = _context.House.Where(p => HouseType.Contains(p.HouseType));
        }
        querykeyword = _context.House.Where(p => p.KeyWord.Contains(KeyWords));
        List<House> list = queryarea.Intersect(queryrent).Intersect(queryhouse).Intersect(querykeyword).ToList();
        if (list.Count>0)
        {
            Repeater1.DataSource = list;
            Repeater1.DataBind();
            Label1.Visible=true;
        }
        else
            Label2.Visible=true; 
        UpdatePanel1.Update();    
    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        Label1.Text=Request.Form["renttype"].ToString();
    }
}

选项为自动提取去重复

posted @ 2015-11-24 14:17  陈艺呵呵  阅读(430)  评论(0编辑  收藏  举报