zoukankan      html  css  js  c++  java
  • WB 练习 CheckBoxList 控件 去重显示 点击查询

    前台HTML代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SouSuo.aspx.cs" Inherits="SouSuo" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            <asp:Label ID="Label1" runat="server" Text="区域:"></asp:Label>
            <asp:CheckBox ID="ckQuAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" />
            <br />
            <asp:CheckBoxList ID="CheckBoxList1" runat="server" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged" RepeatDirection="Horizontal">
            </asp:CheckBoxList>
            <br />
            <br />
            <asp:Label ID="Label2" runat="server" Text="租赁类型:"></asp:Label>
            <asp:CheckBox ID="ckZuAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" />
            <br />
            <asp:CheckBoxList ID="CheckBoxList2" runat="server" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged" OnCallingDataMethods="CheckBoxList2_CallingDataMethods" RepeatDirection="Horizontal">
            </asp:CheckBoxList>
            <br />
            <br />
            <asp:Label ID="Label3" runat="server" Text="房屋类型:"></asp:Label>
            <asp:CheckBox ID="ckFangAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="CheckBox3_CheckedChanged" />
            <br />
            <asp:CheckBoxList ID="CheckBoxList3" runat="server" OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged" RepeatDirection="Horizontal">
            </asp:CheckBoxList>
            <br />
            <asp:Label ID="Label4" runat="server" Text="关键字:"></asp:Label>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" style="height: 21px" Text="搜索" />
            <br />
            <br />
            <br />
            <asp:Repeater ID="Repeater1" runat="server">
                 <HeaderTemplate>
                    <table width="1000" border="0" cellspacing="1" cellpadding="1" bgcolor="#6600FF">
                      <tr>
                       
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF">关键字</td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF">区域</td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF">使用面积</td>
                        <td width="100" align="center" valign="middle" bgcolor="#FFFFFF">租金</td>
                        <td width="100" align="center" valign="middle" bgcolor="#FFFFFF">租赁类型</td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF">房屋类型</td>
                       
                      </tr>
                </HeaderTemplate>
                <FooterTemplate>
                   </table>
                </FooterTemplate>
                <ItemTemplate>
                    <tr>
                        
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("KeyWord") %></td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("Area") %></td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("SquareMeter") %></td>
                        <td width="100" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("Rent") %></td>
                        <td width="100" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("RentType") %></td>
                        <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("HouseType") %></td>
                       
                      </tr>
                </ItemTemplate>
            </asp:Repeater>
        
        </div>
        </form>
    </body>
    </html>
    

      后台C#代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Collections;
    
    public partial class SouSuo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                TestDataContext context = new TestDataContext();
    
                Repeater1.DataSource = context.House;
                Repeater1.DataBind();
    
                //去重显示 方法一
                //查出这个表 放在一个集合里面
                //var query = context.House;
    
    
                //foreach (House data in query)
                //{               
                //    ListItem item = new ListItem();
                //    item.Text = data.Area;
                //    //去重显示 判断早的像是不是已经存在
                //    if (!CheckBoxList1.Items.Contains(item))
                //    {
                //        //添加
                //        CheckBoxList1.Items.Add(item);
                //    }            
                //}
    
                //去重显示方法二:
                //Select选取这条数据 进行去重 放到一个集合里面
                List<string> list = context.House.Select(p => p.Area).Distinct().ToList();
    
                foreach (string text in list)
                {
                    ListItem item = new ListItem();
                    item.Text = text;
                    CheckBoxList1.Items.Add(item);
    
                }
    
                List<string> listR = context.House.Select(p => p.RentType).Distinct().ToList();
    
                foreach (string text in listR)
                {
                    ListItem item = new ListItem();
                    item.Text = text;
                    CheckBoxList2.Items.Add(item);
    
                }
    
                List<string> listH = context.House.Select(p => p.HouseType).Distinct().ToList();
    
                foreach (string text in listH)
                {
                    ListItem item = new ListItem();
                    item.Text = text;
                    CheckBoxList3.Items.Add(item);
    
                }
            }
        }
        protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
        {
    
        }
        protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            foreach (ListItem item in CheckBoxList1.Items)
            {
                item.Selected = ckQuAll.Checked;
            }
        }
        protected void CheckBoxList2_CallingDataMethods(object sender, CallingDataMethodsEventArgs e)
        {
    
        }
        protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
        {
            foreach (ListItem item in CheckBoxList2.Items)
            {
                item.Selected = ckZuAll.Checked;
            }
        }
        protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
        {
            foreach (ListItem item in CheckBoxList3.Items)
            {
                item.Selected = ckFangAll.Checked;
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            TestDataContext context = new TestDataContext();
            List<House> list = context.House.ToList();
            //造集合
            ArrayList listArea = new ArrayList();
            ArrayList listZu = new ArrayList();
            ArrayList listHouse = new ArrayList();
    
            //区域筛选
            //有选中项 并且不全选
            if (CheckBoxList1.SelectedIndex >= 0 && !ckQuAll.Checked)
            { 
                //取出里面的选中值
                foreach (ListItem item in CheckBoxList1.Items)
                { 
                    //如果被选中 取出里面的值 给到一个集合
                    if (item.Selected)
                    {
                        listArea.Add(item.Text);
                    }
                    
                }
                //listArea是区域集合 包含这条数据Area的区域
                list = list.Where(p => listArea.Contains(p.Area)).ToList();
            }
            //租赁类型筛选
                 //有选中项 并且不全选
            if (CheckBoxList2.SelectedIndex >= 0 && !ckZuAll.Checked)
            { 
                //取出里面的选中值
                foreach (ListItem item in CheckBoxList2.Items)
                { 
                    //如果被选中 取出里面的值 给到一个集合
                    if (item.Selected)
                    {
                        listZu.Add(item.Text);
                    }
                   
                }
                //listArea是区域集合 包含这条数据Area的区域
                list = list.Where(p => listZu.Contains(p.RentType)).ToList();
            }
    
            //房屋类型筛选
                 //有选中项 并且不全选
            if (CheckBoxList3.SelectedIndex >= 0 && !ckFangAll.Checked)
            { 
                //取出里面的选中值
                foreach (ListItem item in CheckBoxList3.Items)
                { 
                    //如果被选中 取出里面的值 给到一个集合
                    if (item.Selected)
                    {
                        listHouse.Add(item.Text);
                    }
                    
                }
                //listArea是区域集合 包含这条数据Area的区域
                list = list.Where(p => listHouse.Contains(p.HouseType)).ToList();
            }
    
    
    
            //关键字筛选
            string KeyWord = TextBox1.Text;
            if (KeyWord != "")
            {
                list = list.Where(p => p.KeyWord.Contains(KeyWord)).ToList();
            }
            Repeater1.DataSource = list;
            Repeater1.DataBind();
        }
    }
    

      网页显示:

  • 相关阅读:
    vmware workstation 10.0
    成为嵌入式程序员应知道的0x10个基本问题
    Linux嵌入式系统与硬件平台的关系
    vasprintf的实现
    GIT常用命令
    ip地址转化代码实例
    Linux网络编程实例解析
    openwrt的交叉编译
    appium初学者,使用之检查appium环境报错Could not detect Mac OS X Version from sw_vers output: '10.12.1’,
    第二章 mac上运行第一个appium实例
  • 原文地址:https://www.cnblogs.com/zhuxu/p/5073585.html
Copyright © 2011-2022 走看看