山那边是海 发表于 2015-1-16 14:23:48

NET网页编程之怎样保留静态控件中的数据形态

既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.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跨平台根本就不是外行人想想的那种,一次编译,处处运行。

爱飞 发表于 2015-1-18 13:51:06

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

再现理想 发表于 2015-2-9 07:56:41

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

飘灵儿 发表于 2015-2-27 04:57:56

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

只想知道 发表于 2015-3-8 22:17:56

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。

第二个灵魂 发表于 2015-3-16 19:01:22

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

再见西城 发表于 2015-3-23 01:48:30

逐步缩小出错代码段的范围,最终确定错误代码的位置。
页: [1]
查看完整版本: NET网页编程之怎样保留静态控件中的数据形态