20151224:Web:CheckBoxList 控件:去重显示 ;复选框多选时可点击查询查出结果

aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Main.aspx.cs" Inherits="Main" %>

<!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>

        <br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="区域:"></asp:Label>
        <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" Text="全选" />
        <br />
        <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal">
        </asp:CheckBoxList>
        <br />
        <asp:Label ID="Label2" runat="server" Text="租赁类型:"></asp:Label>
        <asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" Text="全选" />
        <br />
        <asp:CheckBoxList ID="CheckBoxList2" runat="server" RepeatDirection="Horizontal">
        </asp:CheckBoxList>
        <br />
        <asp:Label ID="Label3" runat="server" Text="房屋类型:"></asp:Label>
        <asp:CheckBox ID="CheckBox3" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox3_CheckedChanged" Text="全选" />
        <br />
        <asp:CheckBoxList ID="CheckBoxList3" runat="server" 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="Button2" runat="server" OnClick="Button2_Click" Text="搜索" />
        <br />

        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table width="840" border="0" cellspacing="1" cellpadding="1" bgcolor="#6600FF">
                  <tr>
                    <td width="120" height="30" 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="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="120" align="center" valign="middle" bgcolor="#FFFFFF">房屋类型</td>
                   </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><a href="Update.aspx?id=<%#Eval("id") %>">编辑</a>&nbsp;<a href="Delete.aspx?id=<%#Eval("id") %>">删除</a></td>
                    <td width="120" height="30" 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="120" align="center" valign="middle" bgcolor="#FFFFFF" ><%#Eval("Rent") %></td>
                    <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("RentType") %></td>
                    <td width="120" align="center" valign="middle" bgcolor="#FFFFFF"><%#Eval("HouseType") %></td>
                   </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>

    </div>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="添加数据" />
    </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;
using System.Collections;

public partial class Main : System.Web.UI.Page
{
    private HouseDataContext context = new HouseDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            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);
                }
            }
            foreach (House data in query)
            {
                ListItem item = new ListItem();//造项
                item.Text = data.RentType;
                if (!CheckBoxList2.Items.Contains(item))
                {
                    CheckBoxList2.Items.Add(item);
                }
            }
            foreach (House data in query)
            {
                ListItem item = new ListItem();//造项
                item.Text = data.HouseType;
                if (!CheckBoxList3.Items.Contains(item))
                {
                    CheckBoxList3.Items.Add(item);
                }
            }
            //去重显示 方式二:
            //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 Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect("Insert.aspx");
    }
    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        foreach (ListItem item in CheckBoxList1.Items)
        {
            item.Selected = CheckBox1.Checked;
        }
    }
    protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    {
        foreach (ListItem item in CheckBoxList2.Items)
        {
            item.Selected = CheckBox2.Checked;
        }
    }
    protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
    {
        foreach (ListItem item in CheckBoxList3.Items)
        {
            item.Selected = CheckBox3.Checked;
        }
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        List<House> list = context.House.ToList();//造集合存放所有的数据
        ArrayList listArea = new ArrayList();//造集合
        ArrayList listRentType = new ArrayList();
        ArrayList listHouseType = new ArrayList();

        //第一个查询条件区域Area
        if (CheckBoxList1.SelectedIndex >= 0 && !CheckBox1.Checked)//有选中项并且不全选
        {
            foreach (ListItem item in CheckBoxList1.Items)//取出里面的选中值
            {
                if (item.Selected)
                { //如果被选中 取出里面的值 并赋给集合
                    listArea.Add (item.Text);
                }
            }
            list = list.Where(p => listArea.Contains(p.Area)).ToList();//listArea是区域集合 包含这条数据Area的区域
        }
        //取第二个查询条件租赁类型RentType
        if (CheckBoxList2.SelectedIndex >= 0 && !CheckBox2.Checked)
        {
            foreach (ListItem item in CheckBoxList2.Items)
            {
                if (item.Selected)
                {
                    listRentType.Add(item.Text);
                }
            }
            list = list.Where(p => listRentType.Contains(p.RentType)).ToList();
        }
        //取第三个查询条件房屋类型HouseType
        if (CheckBoxList3.SelectedIndex >= 0 && !CheckBox3.Checked)
        {
            foreach (ListItem item in CheckBoxList3.Items)
            {
                if (item.Selected)
                {
                    listHouseType.Add(item.Text);
                }
            }
            list = list.Where(p => listHouseType.Contains(p.HouseType)).ToList();
        }
        //取第四个查询条件关键字KeyWord
        string keyword = TextBox1.Text;
        if(keyword != "")
        {
            list = list.Where(p => p.KeyWord.Contains(keyword)).ToList();
        }

        Repeater1.DataSource = list;
        Repeater1.DataBind();
    }
}

去重显示:

多选查询:

时间: 2024-12-21 08:05:23

20151224:Web:CheckBoxList 控件:去重显示 ;复选框多选时可点击查询查出结果的相关文章

安卓,网页控件,显示网页 Android, web controls, display web pages

安卓,网页控件,显示网页Android, web controls, display web pages 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:[email protected] E-mail: 313134555 @qq.com mWebView.loadUrl("https://zhuanlan.zhihu.com/p/28275732"); mWebView.getSettings().setJavaScriptEnabled(true); mWe

Web端控件,页面传值

一.记忆Web端控件需要配合HTML 中的Form表单元素 Label - 在HTML中被编译成<span> Literal - 在HTML中被编译成空 文本类 文本框      <input type="text">                        TextBox 密码框      <input type="password">                 TextBox 属性TextMode="pa

[转]Oracle分页之二:自定义web分页控件的封装

本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如果大量的页面要使用这个分页存储过程,如果利用上节的方式,势必要书写大量的代码.如何才能够少些代码书写量呢?当然了,利用自定义web控件进行一下封装,也许是一个好方法,但是如何进行封装呢? 首先,就是在项目中添加一个“Web 用户控件“的页面,我们定义为:MyPagination.ascx 然后,就是

关于&lt;asp:checkBoxList&gt;控件的对齐方法

定义和用法 TextAlign 属性用于获取或设置 CheckBoxList 项目的文本的文本对齐方式. 语法 <asp:CheckBoxList TextAlign="align" runat="server"> some content </asp:CheckBoxList> 属性 描述 align 为列表项目规定文本的对齐方式. 可能的值: Left Right (default) 实例 下面的例子把 CheckBoxList 控件中的

自定义web用户控件ascx

在页面中使每个产品类别都展示重复的样式又想代码简洁,这时就要设置一个自定义控件. 拖入一个Repeater控件设置好样式 在page_load事件下面写一个属性: protected voidPage_Load(object sender, EventArgs e) { if(!isPostBack) { var data=new T_UserTableAdapter().GetDataById(CatId); Repeater1.DataSource=data; //手动绑定控件 Repeat

js 日期控件 可以显示为和历

日期控件的js 1 <!-- 2 /** 3 * Calendar 4 * @param beginYear 1990 5 * @param endYear 2010 6 * @param language 0(zh_cn)|1(en_us)|2(en_en)|3(zh_tw)|4(jp) 7 * @param patternDelimiter "-" 8 * @param date2StringPattern "yyyy-MM-dd" 9 * @param

分享免费的web打印控件puzu

在WEB系统中,打印的确是个烦人的问题----特别是你的应用环境又有很多种类的打印机.如果自己开发打印控件,可能因为项目时间紧而来不及.前段时间有机会接触了一下WEB打印.在博客园.CSDN以及各个论坛上找了老半天,终于顺利的完成了公司项目.现在就结合我的应用体验,将市面上的所有的免费打印控件为大家做一个介绍. 1. DLPrinter 这个打印控件完全免费,界面还不错,使用也较为简单,支持打印预览.直接打印.可设置页眉.页脚.页边距.打印份数.纸张大小等信息,悲剧的是这大哥在07年做了第二次更

web表格控件制作圆环图

工具/原料 web表格控件:FineReport7.1.1 大小:148.2M 适用平台:windows/linux 1. 描述 圆环图类似于饼图,显示个体与整体之间的关系,可以直观了解个体部分所占整体部分的百分比,但是不同于饼图的是,圆环图可以包含多个分类,即多层圆环图,可以从圆环的径向上去比较不同分类下同一系列的数据的变化趋势. 2. 示例 下面我们制作一张圆环图图表,显示各个地区产品的销量情况,在查看每个地区产品销量所在份额的同时,对比同一个产品在不同地区的销量差异情况. 2.1 数据准备

ASP.NET web用户控件

我们在编写网站时,除了使用它们固定的服务器控件,我们还可以自定义一些控件来重复使用. 添加一个web用户控件,可以在前端和后台添加内容,再添加一个web窗体,将web用户控件拖入web窗体对应地方中. 注意,用户控件不能设为起始页,并且拖入web窗体时,要将web窗体改为设计模式,方可拖入成功. 拖入后的代码如下: 前端: <%@ Register src="ww.ascx" tagname="ww" tagprefix="uc1" %&g