我需要填充几个DropDownList,并且我搜索更好的方法来执行此操作,因为我有8个DropDownList来填充.在我看来,这不是最好的方法,你有8倍相同的代码...可以使用循环?
public partial class MainPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DropDownList(); } public void DropDownList() { string filePath = Server.MapPath("~/Datas.xml"); using (DataSet ds = new DataSet()) { ds.ReadXml(filePath); DropDownList1.DataSource = ds; DropDownList1.DataTextField = "name"; DropDownList1.DataValueField = "id"; DropDownList1.DataBind(); DropDownList2.DataSource = ds; DropDownList2.DataTextField = "name"; DropDownList2.DataValueField = "id"; DropDownList2.DataBind(); //Then DropDownList3, 4, 5, 6....8 } } }
这是与我的用户的XML:
1 User1 2 User2 3 User3 4 User4
Andrei.. 5
把它们放在一个数组中:
DropDownList[] ddls = new DropDownList[]{ DropDownList1, DropDownList2, DropDownList3, DropDownList4, ... };
并循环通过它:
foreach (DropDownList ddl in ddls) { ddl.DataSource = ds; ddl.DataTextField = "name"; ddl.DataValueField = "id"; ddl.DataBind(); }
但需要注意的是 - 在UI方面,您最终会得到8个相同的下拉菜单吗?是否有可能为他们使用某种中继器?
把它们放在一个数组中:
DropDownList[] ddls = new DropDownList[]{ DropDownList1, DropDownList2, DropDownList3, DropDownList4, ... };
并循环通过它:
foreach (DropDownList ddl in ddls) { ddl.DataSource = ds; ddl.DataTextField = "name"; ddl.DataValueField = "id"; ddl.DataBind(); }
但需要注意的是 - 在UI方面,您最终会得到8个相同的下拉菜单吗?是否有可能为他们使用某种中继器?