摘要:周末,欢送同学,说到一句话:如果一直做软件的话,就写一本书how to be a professional programmer——职业程序员入门指南,教育一下俺这样的半吊子。
最近发现动态添加控件时,需要先将新控件添加到控件集合中,然后再设置新控件的属性.
比如
private void Button1_Click(object sender, System.EventArgs e) { { Placeholder1.Controls.Clear(); DropDownList d = new DropDownList(); d.ID="controlID"; Placeholder1.Controls.Add; d.Width=200; MyDataHelper.BindControl(d, CityList.GetType() ); ViewState["AddControl"] = true; }
MyDataHelper.BindControl是一个绑定数据的函数
然后,在pageload里,重新载入该控件
private void Page_Load(object sender, System.EventArgs e) { if ((ViewState["AddControl"]!= null) && ((bool)ViewState["AddControl"])) { DropDownList d = new DropDownList(); d.ID="controlID"; Placeholder1.Controls.Add; } }
这样的代码可以正常工作,postback之后ddl的属性和绑定的数据不会丢失。
但是,如果把代码的顺序颠倒一下 .... // it does not work d.Width=200; MyDataHelper.BindControl(d, CityList.GetType() ); Placeholder1.Controls.Add; ....
postback之后,postback之后ddl的属性和绑定的数据丢失。
...[
阅读全文]