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