• 租房子分组交集查询


    Html界面

    <title></title>
    <script language="javascript">
    function CkAll(ckall,ckname){
    var cks = document.getElementsByName(ckname);
    for(var i=0;i<cks.length;i++)
    {
    cks[i].checked = ckall.checked;
    }
    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>

    区域:<input id="Checkbox1" type="checkbox" onclick="CkAll(this,'CkArea')" />全选<br />
    <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
    <ItemTemplate>
    <input id="CkArea_<%#Eval("Code") %>1" name="CkArea" type="checkbox" value="<%# Eval("Code") %>" /><span><%#Eval("Name") %></span>
    </ItemTemplate>
    </asp:Repeater>
    <br />
    租赁类型:<input id="Checkbox2" type="checkbox"onclick="CkAll(this, 'CkRentType')" />全选<br />
    <asp:Repeater ID="Repeater2" runat="server">
    <ItemTemplate>
    <input id="CkRentType_<%#Eval("Code") %>" type="checkbox" name="CkRentType" value="<%#Eval("Code") %>" /><span><%#Eval("Name") %></span>
    </ItemTemplate>
    </asp:Repeater>
    <br />
    房屋类型:<input id="Checkbox3" type="checkbox"onclick="CkAll(this, 'CkHouseType')" />全选<br />
    <asp:Repeater ID="Repeater3" runat="server">
    <ItemTemplate>
    <input id="CkHouseType_<%#Eval("Code") %>" type="checkbox" name="CkHouseType" value="<%#Eval("Code") %>" /><span><%#Eval("Name") %></span>
    </ItemTemplate>
    </asp:Repeater>
    <br />
    关键词:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="Button1" runat="server" Text="搜索" OnClick="Button1_Click" />
    <br />
    <asp:Repeater ID="Repeater4" runat="server">
    <HeaderTemplate>
    <table width="100%" border="1">
    </HeaderTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
    <ItemTemplate>
    <tr>
    <td><%#Eval("KeyWord") %></td>
    <td><%#Eval("Area") %></td>
    <td><%#Eval("SquareMeter") %></td>
    <td><%#Eval("Rent") %></td>
    <td><%#Eval("RentType") %></td>
    <td><%#Eval("HouseType") %></td>
    </tr>
    </ItemTemplate>
    </asp:Repeater>

    </div>
    </form>
    </body>

    代码

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

    public partial class Sousuo : System.Web.UI.Page
    {
    private HouseDataContext _Context = new HouseDataContext();
    private void FillArea()
    {
    //定义封装类 新建类 造个集合
    List<House> list = new List<House>();
    //再造个临时集合 查询数据库中用Selectri找Area列 去掉重复吧 字段找出来
    List<string> list2 = _Context.House.Select(p => p.Area).Distinct().ToList();
    //循环遍历每一个 吧Area列的值从数据库拿出来 送到S上去 把Data的Code和Name送到集合中区
    foreach(string s in list2)
    {
    House data = new House();
    data.Code = s;
    data.Name = s;
    list.Add(data);
    }
    //把查出来的集合 绑定到Repeater1的界面上去
    Repeater1.DataSource = list;
    Repeater1.DataBind();
    }
    private void FillRentType()
    {
    List<House> list = new List<House>();
    List<string> list2 = _Context.House.Select(p => p.RentType).Distinct().ToList();
    foreach(string s in list2)
    {
    House data = new House();
    data.Code = s;
    data.Name = s;
    list.Add(data);
    }
    Repeater2.DataSource = list;
    Repeater2.DataBind();
    }
    private void FillHouseType()
    {
    List<House> list = new List<House>();
    List<string> list2 = _Context.House.Select(p => p.HouseType).Distinct().ToList();
    foreach(string s in list2)
    {
    House data = new House();
    data.Name = s;
    data.Code = s;
    list.Add(data);
    }
    Repeater3.DataSource = list;
    Repeater3.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
    FillArea();
    FillHouseType();
    FillRentType();
    }
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
    var var1 = _Context.House.AsQueryable();
    if(Request["CkArea"]!=null)
    {
    string strarea = Request["CkArea"];
    string[] areas = strarea.Split(',');
    var1 = var1.Where(p => areas.Contains(p.Area));
    }
    var var2 = _Context.House.AsQueryable();
    if(Request["CkRentType"]!=null)
    {
    string rentType = Request["CkRentType"];
    string[] rent = rentType.Split(',');
    var2 = var2.Where(p => rent.Contains(p.RentType));
    }
    var var3 = _Context.House.AsQueryable();
    if (Request["CkHouseType"] != null)
    {
    string housetype = Request["CkHouseType"];
    string[] houses = housetype.Split(',');
    var3 = var3.Where(p => houses.Contains(p.HouseType));
    }

    var var4 = _Context.House.AsQueryable();
    if(TextBox1.Text.Trim().Length>0)
    {
    var4 = var4.Where(p => p.KeyWord.Contains(TextBox1.Text));
    }


    var var = var1.Intersect(var2).Intersect(var4).Intersect(var3);


    Repeater4.DataSource = var;
    Repeater4.DataBind();
    }

    }

  • 相关阅读:
    华硕路由器修改 Hosts 以达到局域网内自定义解析
    一款开源、高颜值的终端terminus,支持Windows、MacOS
    Windows 10启用Linux子系统(WSL)
    一款全能的下载工具Motrix,支持BT、磁力链、百度网盘等资源
    ubuntu 14.04 和16.04 快速下载
    CentOS 7一键安装Seafile搭建私有云存储
    background背景色
    3d爱心代码
    Mac Mini(late 2014) 添加NVMe固态组Fusion Drive
    member access within misaligned address 0x0000002c3931 for type 'struct ListNode‘
  • 原文地址:https://www.cnblogs.com/tianxuan/p/4744585.html
Copyright © 2020-2023  润新知