惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
博客园 - 叶小钗
爱范儿
爱范儿
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
T
Tailwind CSS Blog
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - Tim.Tang

个人简历常用词汇(zt) 听懂新闻英语的十大方法(zt) 传说中的100句英语可以帮你背7000单词(zt) spring 与 guice 的区别好玩的好法(转) Popular Verbal English Attributes of C Sharp Basketball English Popular English Sentences 今天中午的时候公司里的一个老大跟我说给我争取一个去参加候捷设计模式培训的名额 近期关于“软件架构”的一个看点(zt) JavaScript事件串联之土办法 计算机科学经典论文(转载) 一个IT项目经理的心情日记(转载) 怎样做项目计划(转载) 微软资深经理人的项目管理经验(转载) 软件项目过程管理经验(转载) 项目管理过程中要注意的一些问题 如何在应用Object DataSource和Typed DataSet构建的应用程序中使用水晶报表 如果应用Object DataSource和Typed DataSet快速构建三层结构的B/S应用程序 - 原创
动态控件的状态问题的分析
Tim.Tang · 2007-03-10 · via 博客园 - Tim.Tang

引用出处:http://blog.joycode.com/felix/archive/2004/10/21/36136.aspx

 1private void Page_Load(object sender, EventArgs e)
 2{
 3    DropDownList ddlDynamic = new DropDownList();
 4    ddlDynamic.ID = "ddlDynamic";
 5    HtmlForm form1 = (HtmlForm)this.FindControl("Form1");
 6    
 7    if (!IsPostBack) 
 8    {
 9        ddlDynamic.Items.Add("Before");
10    }

11    form1.Controls.Add(ddlDynamic);
12    if (!IsPostBack) 
13    {
14        ddlDynamic.Items.Add("After");
15    }

16}

其中的 "Before" 的状态不会保存到 ViewState里面,因为在
SaveViewState() 方法里面会检查这个DropDownList的一个标志位,如果标志位置位,则 IsTrackingViewState 返回 true。
置位的办法是通过 TrackViewState方法,
而 TrackViewState方法是 ControlCollection.Add 方法即“form1.Controls.Add”引发的.所以如果把form1.Controls.Add 这句话放到最前面就对了。