万能复选框全选(反选)/选项提取/搜索方案
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(); } }
选项为自动提取去重复