首页 新闻 赞助 找找看

在Page_Load中创建的TextBox何时回填视图数据,看了几天源码都没发现,虚心求教

0
悬赏园豆:10 [已解决问题] 解决于 2013-04-14 11:27

在客户端改了Page_Load中创建的TextBox的值后触发change事件,不太理解,我的理解
1、LoadAllState恢复页面中控件的状态
2、ProcessPostData对比控件状态与PostData的值,改动则添加到集合中,以待后面触发事件
3、LoadRecursive中触发页面Load事件和所有控件的Load事件,此时也刚好是我在页面中创建了text1控件,但是还是初始值,没恢复视图状态
4、再次调用ProcessPostData以保证第第一次ProcessPostData没有被匹配到的控件被找到,这次应该找到了我创建的那控件text1,然后比较是否状态发生了变化
5、接下来就是触发一系列的控件改变事件以及回传事件了

我这代码简单一点看明白就行,问题也就是发生我上面讲的第三步的Load事件和第四步的ProcessPostData中,这两者之间也没发现回填视图状态,所以text1控件是什么时候恢复状态的
Page_Load(object sender, EventArgs e)
{
     TextBox text1 = new TextBox();
     text1.ID = "text1";
     text1.Text = "text1";
     text1.TextChanged += new EventHander(Text_Change);

}
Text_Change(object sender, EventArgs e)
{
    string text = "hello";//每次的客户端修改,这边都进来了,所以肯定会有恢复视图的时段,但是目前没找到是在哪个过程中
}

自由小菜园的主页 自由小菜园 | 初学一级 | 园豆:6
提问于:2012-12-07 12:40
< >
分享
最佳答案
0

强烈建议不好在cs文件中创建什么服务器端的什么控件

收获园豆:5
chenping2008 | 大侠五级 |园豆:9836 | 2012-12-07 13:59

只是为了研究

自由小菜园 | 园豆:6 (初学一级) | 2012-12-07 14:00

@自由小菜园: 最好是不要这样做,都用JS文件搞定还是很不错的

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-07 14:02

ProcessPostData本身就是回复视图的操作。

jone_e | 园豆:1410 (小虾三级) | 2012-12-07 14:17
其他回答(2)
0

在第四步发生了恢复Viewstate。

收获园豆:5
jone_e | 园豆:1410 (小虾三级) | 2012-12-07 14:15

恳请解释,第四步不是恢复回传的数据吗,也就是用户填的东西,怎么会是恢复视图呢?

支持(0) 反对(0) 自由小菜园 | 园豆:6 (初学一级) | 2012-12-07 14:45

@自由小菜园: 是,就是恢复用户回传的数据。

支持(0) 反对(0) jone_e | 园豆:1410 (小虾三级) | 2012-12-07 16:35
0

Page_load 事件有问题。

没有对 回发事件做判断

TextBox text1 = new TextBox();

text1.ID = "text1";

if(!IsPostBack)

{
     
     text1.Text = "text1";

}
     text1.TextChanged += new EventHander(Text_Change);

geass.. | 园豆:1821 (小虾三级) | 2012-12-07 15:27

楼上的,我故意这样写的,晕死我了,为了确定是否有视图回填的过程啊

支持(0) 反对(0) 自由小菜园 | 园豆:6 (初学一级) | 2012-12-07 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册