本文實例講述了C#中DropDownList動態生成的方法。分享給大家供大家參考。具體分析如下:
今天學習了DropDownList的動態生成 以及asp.net的生命周期,還有ViewState,因為項目需要根據需求動態生成條件 所以研究了一部分代碼來完成這些工作,好了話不多說了,來看代碼
首先是網頁的代碼:
<span style="font-size:18px;"><body> <form id="form1" runat="server"> <div> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> //placeholder控件相當于一個容器,用于存放其他控件 <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button"/></div> </form></body></span>
下面是c#程序
public partial class _Default : System.Web.UI.Page{  private CategoryBLL _categoryBLL = new CategoryBLL();  private Category _category = new Category();  private void Page_Init(object sender, System.EventArgs e)  //可以看一下asp的生命周期  {    BindDrpClass();  }  protected void Page_Load(object sender, EventArgs e)  {    string str = "8/14/19/25"; //數據庫讀取    string[] arr = str.Split('/');    if (arr.Length == PlaceHolder1.Controls.Count) //防止新增類別時讀取出錯    {      for (int i = 0; i < PlaceHolder1.Controls.Count; i++)      {        if (PlaceHolder1.Controls[i] is DropDownList)        {          ((DropDownList)PlaceHolder1.Controls[i]).SelectedValue = arr[i];        }      }    }  }  private void BindDrpClass()  {    DataTable dt = _categoryBLL.GetCategory();    DataRow[] drs = dt.Select("pid=0");    foreach (DataRow dr in drs)    {      string id = dr["id"].ToString();      string name = dr["name"].ToString();      DropDownList ddl = new DropDownList();      //具體添加的操作      ddl.Items.Clear();      ddl.ID = "ddl" + id;      ddl.Items.Add(new ListItem("-" + name + "-", id));      PlaceHolder1.Controls.Add(ddl);      int sonparentid = int.Parse(id);      BindDrpNode(sonparentid, dt, ddl);    }  }  private void BindDrpNode(int parentid, DataTable dt, DropDownList ddl)  {    DataRow[] drs = dt.Select("pid= " + parentid);    foreach (DataRow dr in drs)    {      string id = dr["id"].ToString();      string name = dr["name"].ToString();      ddl.Items.Add(new ListItem(name, id));      PlaceHolder1.Controls.Add(ddl);    }  }  protected void Button1_Click(object sender, EventArgs e)  {    string category = "";    string category2 = "";    foreach (Control childControl in PlaceHolder1.Controls)    {      if (childControl is DropDownList)       {        category += "/" + ((DropDownList)childControl).SelectedItem.Text;        category2 += "/" + ((DropDownList)childControl).SelectedValue;      }    }    if (category.Length > 0)      category = category.Remove(0, 1);    Response.Write(category);    Response.Write("<br />");     if (category2.Length > 0)      category2 = category2.Remove(0, 1);    Response.Write(category2);  }}希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答