|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。先看一个风趣的例子,我在Page_Load中静态增加了一个DropDownList控件,并为DropDownList控件静态增加一些下拉项,以下:
protectedvoidPage_Load(objectsender,EventArgse)
{
DropDownListli=newDropDownList();
if(!IsPostBack)
{
li.Items.Add("abc");
li.Items.Add("abcd");
li.Items.Add("abcde");
}
this.form1.Controls.Add(li);
这时候候,只需页面任何回发操纵,li中的下拉项就会全体消散,缘故原由是由于未为DropDownList控件启用视图跟踪监控。
要怎样办理该成绩呢?
1,间接开启DropDownList的视图跟踪临控,代码修正以下:
protectedvoidPage_Load(objectsender,EventArgse)
{
DropDownListli=newDropDownList();
((IStateManager)li.Items).TrackViewState();
if(!IsPostBack)
{
li.Items.Add("abc");
li.Items.Add("abcd");
li.Items.Add("abcde");
}
this.form1.Controls.Add(li);
}
2,新增加控件,后为控件增加下拉项,代码修正以下:
protectedvoidPage_Load(objectsender,EventArgse)
{
DropDownListli=newDropDownList();
this.form1.Controls.Add(li);
if(!IsPostBack)
{
li.Items.Add("abc");
li.Items.Add("abcd");
li.Items.Add("abcde");
}
}
有伴侣要问了,为何仅仅是换了代码的地位,就可以保留控件的下拉项了呢?实在仍是由于Controls.Add办法中开启了视图跟踪临控!说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。 |
|