简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等
来源:互联网 发布:js获取当前设备 编辑:程序博客网 时间:2024/05/17 22:57
public partial class _Default : System.Web.UI.Page { DBHelper db = new DBHelper(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.Rep1.DataSource = db.GetDataSet("select * from BigType"); this.Rep1.DataBind(); } } protected void Rep1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Label lbBid = e.Item.FindControl("lnBtid") as Label; Repeater RepSmall = (Repeater)e.Item.FindControl("Rep2"); if (RepSmall != null) { RepSmall.DataSource = db.GetDataSet("select * from SmallType where BtId=" + lbBid.Text + " order by id desc"); RepSmall.DataBind(); } } } protected void rep_ItemCommand(object source, RepeaterCommandEventArgs e) { int Stid = 0; int Btid = 0; if (e.CommandName == "Search") { Label ll = (Label)e.Item.Parent.Parent.FindControl("lnBtid"); Label lbbigtypename = (Label)e.Item.Parent.Parent.FindControl("lbBigTypeName"); Repeater r = (Repeater)e.Item.Parent.Parent.FindControl("Rep2"); ///修改该类别颜色为默认色 foreach (Control rep in r.Controls) { LinkButton LinkButton = (LinkButton)rep.FindControl("Lbut"); if (LinkButton.ForeColor == System.Drawing.Color.Red) { LinkButton.ForeColor = System.Drawing.Color.Black; } } LinkButton lb = (LinkButton)e.Item.FindControl("Lbut"); lb.ForeColor = System.Drawing.Color.Red; Stid = Convert.ToInt32(e.CommandArgument); Btid = Convert.ToInt32(ll.Text); string BigTypename = lbbigtypename.Text; string SmallTypeName = lb.Text; if (BigTypename == "品牌") { if (lb.Text.Equals("不限")) { PinPai = ""; } else { PinPai = Stid.ToString()+"|"+lb.Text; } } else if (BigTypename == "价格") { if (lb.Text.Equals("不限")) { PriceID = ""; } else { PriceID = Stid.ToString() + "|" + lb.Text; } } else if (BigTypename == "颜色") { if (lb.Text.Equals("不限")) { Color = ""; } else { Color = Stid.ToString() + "|" + lb.Text; } } else if (BigTypename == "Cpu") { if (lb.Text.Equals("不限")) { Cpu = ""; } else { Cpu = Stid.ToString() + "|" + lb.Text; } } else if (BigTypename == "操作系统") { if (lb.Text.Equals("不限")) { XiTong = ""; } else { XiTong = Stid.ToString() + "|" + lb.Text; } } } SearchInfo(); } protected void SearchInfo() { DataTable dt = new DataTable("Search"); DataColumn dc1 = new DataColumn("TypeName", Type.GetType("System.String")); DataColumn dc2 = new DataColumn("TypeID", Type.GetType("System.String")); DataColumn dc3 = new DataColumn("ChooseName", Type.GetType("System.String")); dt.Columns.Add(dc1); dt.Columns.Add(dc2); dt.Columns.Add(dc3); if (PinPai != "") { DataRow dr = dt.NewRow(); string[] str = PinPai.Split('|'); dr["TypeName"] = "品牌"; dr["TypeID"] = str[0]; dr["ChooseName"] = str[1]; dt.Rows.Add(dr); } if (PriceID != "") { DataRow dr = dt.NewRow(); string[] str = PriceID.Split('|'); dr["TypeName"] = "价格"; dr["TypeID"] = str[0]; dr["ChooseName"] = str[1]; dt.Rows.Add(dr); } if (Color != "") { DataRow dr = dt.NewRow(); string[] str = Color.Split('|'); dr["TypeName"] = "颜色"; dr["TypeID"] = str[0]; dr["ChooseName"] = str[1]; dt.Rows.Add(dr); } if (Cpu != "") { DataRow dr = dt.NewRow(); string[] str = Cpu.Split('|'); dr["TypeName"] = "Cpu"; dr["TypeID"] = str[0]; dr["ChooseName"] = str[1]; dt.Rows.Add(dr); } if (XiTong != "") { DataRow dr = dt.NewRow(); string[] str = XiTong.Split('|'); dr["TypeName"] = "系统"; dr["TypeID"] = str[0]; dr["ChooseName"] = str[1]; dt.Rows.Add(dr); } this.Rep.DataSource = dt; this.Rep.DataBind(); } /// <summary> /// 价格ID /// </summary> public string PriceID { get { if (ViewState["Price"] != null) { return ViewState["Price"].ToString(); } else { return ""; } } set { ViewState["Price"] = value; } } /// <summary> /// 品牌 /// </summary> public string PinPai { get { if (ViewState["PinPai"] == null) { return ""; } else { return ViewState["PinPai"].ToString(); } } set { ViewState["PinPai"] = value; } } /// <summary> /// 颜色 /// </summary> public string Color { get { if (ViewState["Color"] == null) { return ""; } else { return ViewState["Color"].ToString(); } } set { ViewState["Color"] = value; } } /// <summary> /// Cpu /// </summary> public string Cpu { get { if (ViewState["Cpu"] == null) { return ""; } else { return ViewState["Cpu"].ToString(); } } set { ViewState["Cpu"] = value; } } /// <summary> /// 操作系统 /// </summary> public string XiTong { get { if (ViewState["XiTong"] == null) { return ""; } else { return ViewState["XiTong"].ToString(); } } set { ViewState["XiTong"] = value; } } protected void Rep_ItemCommand1(object source, RepeaterCommandEventArgs e) { string TypeName = e.CommandArgument.ToString(); if (e.CommandName == "Del") { if (TypeName == "品牌") { PinPai = ""; } else if (TypeName=="价格") { PriceID = ""; } else if (TypeName == "颜色") { Color = ""; } else if (TypeName == "Cpu") { Cpu = ""; } else if (TypeName == "系统") { XiTong = ""; } SearchInfo(); } } }
页面代码:
<asp:Repeater ID="Rep1" runat="server" onitemdatabound="Rep1_ItemDataBound"> <ItemTemplate> <asp:Label ID="lnBtid" runat="server" Text='<%#Eval("id") %>' Visible="false"></asp:Label> <asp:Label ID="lbBigTypeName" runat="server" Text='<%#Eval("BigTypeName") %>' ></asp:Label> <asp:Repeater ID="Rep2" runat="server" onitemcommand="rep_ItemCommand"> <ItemTemplate> <asp:LinkButton ID="Lbut" runat="server" ForeColor="Black" CommandName="Search" CommandArgument='<%#Eval("id") %>' Text='<%#Eval("SmallTypeName")%>'></asp:LinkButton> </ItemTemplate> </asp:Repeater> <br /><br /><br /> </ItemTemplate> </asp:Repeater> <asp:Repeater ID="Rep" runat="server" onitemcommand="Rep_ItemCommand1"> <ItemTemplate> <%#Eval("ChooseName")%><asp:ImageButton ID="ImageButton1" ImageUrl="~/images/1.png" runat="server" CommandName='Del' CommandArgument='<%#Eval("TypeName") %>' /> </ItemTemplate> </asp:Repeater>
- 简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等
- js实现简单的动态添加或删除一行数据
- ASP.NET动态生成输入页面,以及生成控件的大小控制,输入数据的验证等
- C#:简单实现动态数据生成Word文档并保存
- DataTable用中使用Compute 实现简单的DataTable数据的统计.....
- DataTable用中使用Compute 实现简单的DataTable数据的统计
- 简单动态添加控件
- 最简单的动态添加数据到ListView Demo
- 接口动态数据实现如图嵌套循环解决方案
- AngularJs简单数据的添加
- 简单的循环嵌套题目
- jquery将数据以table的形式显示,实现数据统计,分页,以及动态添加,搜索
- 简单的高级控件
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- Linux 下socket超时(connect超时/recv超时)
- linux下使用libcpcap的简单代码
- QQ整人使人一分钟内关机(附破解方法)
- USB-HDD/ZIP/HDD+/ZIP+/CDROM(量产) U盘启动模式简介
- android开机默认中文的方法
- 简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等
- 奇怪的错误!
- 异步post例子(Meal4me登陆)
- 怎么解除任务管理器锁?
- 关门变量
- linux命令记录
- 小记事本
- 右键新建记事本没有了解决办法
- 离线配置Android开发环境