简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等

 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>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值