C#中DropDownList动态生成的方法
程序员文章站
2023-12-03 11:21:58
本文实例讲述了c#中dropdownlist动态生成的方法。分享给大家供大家参考。具体分析如下:
今天学习了dropdownlist的动态生成 以及asp.net的生命周...
本文实例讲述了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#程序设计有所帮助。