Asp.net綁定帶層次下拉框(select控制項)

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   strong   資料   

1、


2、資料庫中表資料結構

 

3、前台頁面

    <select id="pid" runat="server">        <option value="0" data="|0|">不選父級類</option>    </select>

備忘:查看原始碼

4、後台代碼 

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

 

 //帶層次的綁定下拉框(select控制項)         BindDropDownList(0, "┗━", "|0|");
    /// <summary>    /// 帶層次的綁定下拉框    /// </summary>    /// <param name="pItemId">父類編號</param>    /// <param name="levelStr">層次樣式</param>    /// <param name="pItemValue">層級值</param>    protected void BindDropDownList(int pItemId, string levelStr, string pItemValue)    {        //擷取新聞類別列表        DataTable dt = Express.BLL.NewsCategory.GetDataSet().Tables[0];        //判斷是否是父類,更改其層級值        if (pItemId != 0)        {            levelStr += string.IsNullOrEmpty(levelStr) ? "┗━" : "┻━";            pItemValue += pItemId + "|";        }        //遍曆控制項的清單控制項中的資料項目        foreach (DataRow dr in dt.Select("ParentId=" + pItemId))        {            //初始化清單控制項中的資料項目            ListItem li = new ListItem();            //設定資料項目顯示的文本            li.Text = levelStr + dr["ItemName"].ToString();            //設定資料項目關聯的值            li.Value = dr["Id"].ToString();            //添加資料項目的data屬性值            li.Attributes.Add("data", pItemValue + li.Value + "|");            //將資料項目追加到控制項中            this.pid.Items.Add(li);            //遍曆清單控制項中的子類資料項目            BindDropDownList(Convert.ToInt32(li.Value), levelStr, pItemValue);        }    }

5、資料庫部分

        /// <summary>        /// 擷取所有名稱不為空白的類別        /// </summary>        /// <returns></returns>        public DataSet GetDataSet()        {            string sql = "select * from NewsCategory where ItemName<>‘‘ order by replace(itemvalue,convert(varchar,id)+‘|‘,‘‘),sortvalue ";            return SqlHelper.ExecuteDataSet(ConnString.connReadonly, CommandType.Text, sql, null);        }

 

涉及的知識點:

(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(篩選條件,排序);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.