·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> Asp.net绑定带层次下拉框(select控件)

Asp.net绑定带层次下拉框(select控件)

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net绑定带层次下拉框(select控件)

1、效果图

2、数据库中表数据结构

3、前台页面

<select id="pid" runat="server" style="width:160px;" >   <option value="0" data="|0|">不选父级类</option></select>

4、后台代码

using System;using System.Data;using System.Web.UI.WebControls;

 //带层次的绑定下拉框(select控件)         BindDropDownList(0, "┗━");
    /// <summary>    /// 带层次的绑定下拉框    /// </summary>    /// <param name="pItemId">父类编号</param>    /// <param name="levelStr">层次样式</param>       PRotected void BindDropDownList(int pItemId, string levelStr)    {        //获取新闻类别列表        DataTable dt = Express.BLL.NewsCategory.GetDataSet().Tables[0];        //判断是否是父类,更改其层级值        if (pItemId != 0)        {            levelStr += string.IsNullOrEmpty(levelStr) ? "┗━" : "┻━";                    }        //遍历控件的列表控件中的数据项        foreach (DataRow dr in dt.Select("ParentId=" + pItemId))        {            //初始化列表控件中的数据项            ListItem li = new ListItem();            //设置数据项显示的文本            li.Text = levelStr + dr["ItemName"].ToString();            //设置数据项关联的值            li.Value = dr["Id"].ToString();            //将数据项追加到控件中            this.pid.Items.Add(li);            //遍历列表控件中的子类数据项            BindDropDownList(Convert.ToInt32(li.Value), levelStr);        }    }

5、数据库部分

        /// <summary>        /// 获取所有名称不为空的类别        /// </summary>        /// <returns></returns>        public DataSet GetDataSet()        {            string sql = "select * from NewsCategory where ItemName<>'' order by sortvalue ";            return SqlHelper.ExecuteDataSet(ConnString.connReadonly, CommandType.Text, sql, null);        }

备注:查看网页源代码

 <select name="pid" id="pid">    <option value="0">不选父级类</option>    <option value="31">┗━新闻中心</option>    <option value="51">┗━┻━企业快讯</option>    <option value="52">┗━┻━企业公告</option>    <option value="53">┗━┻━行业动态</option>    <option value="54">┗━关于盟友捌捌</option>    <option value="55">┗━┻━企业概况</option>    <option value="56">┗━┻━企业文化</option>    <option value="57">┗━┻━企业发展</option>    <option value="58">┗━┻━联系我们</option></select>

涉及的知识点:

(1)将数据库中的数据绑定到下拉框

 <select id="pid" runat="server">    <option value="0" data="|0|">不选父级类</option> </select>

方法一:

  DataSet ds = Express.BLL.AdminLeft.GetDataSet();  foreach (DataRow dr in ds.Tables[0].Rows)  {     pid.Items.Add(new ListItem(dr["ItemName"].ToString(), dr["Id"].ToString()));  }

备注:

ListItem引用空间:System.Web.UI.WebControls;

ListItem(string text,string value);//text指在 ListItem 中显示的文本;value指ListItem 的值。

方法二:

    pid.DataSource = dt;//设置控件的数据源    pid.DataTextField = "ItemName"; //设置数据项显示的文本    pid.DataValueField = "Id";//设置数据项关联的值    pid.DataBind();//将数据绑定到控件

(2)【DataTable.Select方法】返回值:DataRow对象数组

dt.Select(筛选条件);

dt.Select();

dt.Select(筛选条件,排序);