简单高级搜索页面的简单实现,包括数据控件循环嵌套,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>


 

原创粉丝点击