【发布时间】:2010-09-13 05:34:03
【问题描述】:
我正在开发一个项目,该项目在 page_load 事件中为表单动态创建控件,从数据库中加载它们的当前值并在用户单击继续按钮时保存它们的值(使用 FindControl)。
当我在 .aspx 页面中静态添加一个控件并按照它们在页面加载中加载值并将其保存在按钮按下时的相同过程时,我发现该值无法正确保存。好像不会保存,因为在page_load之后触发了click事件,所以post back的page_load恢复了值,用户输入的值没有保存。
奇怪的是,通过将控件更改为动态创建,就像页面上的所有其他控件一样,并保持加载和保存相同,它现在可以工作了。即使页面加载仍然使用旧数据库值创建控件。
这似乎是一个非常基本的 asp .net 功能,但我只是不清楚发生了什么。我怀疑这与创建时间有关,也可能与视图状态启动时有关。
【问题讨论】:
-
我想我可能已经破解了它。显然,在添加控件时,它会在添加时赶上。因为动态创建是创建对象,设置它的值然后将它添加到页面。通过将其添加到页面,它运行控件的初始化阶段并从视图状态中检索其值,替换刚刚加载的值。本文讲讲:codebetter.com/blogs/jeffrey.palermo/archive/2004/11/25/…
标签: asp.net