我正在使用 Page_Load 事件中的 ChangeMode 方法将 FormView 的 CurrentMode 设置为插入模式,如下所示:
if(!Page.IsPostBack)
{
MyFormView.ChangeMode(FormViewMode.Insert);
}
在我的 FormView 的插入模板中,我有一个 DropDownList 控件,它的 AutoPostBack 属性设置为 true。我在插入模板中还有其他几个 DropDownList 和 TextBox 控件。
每当我更改 DropDownList 的选择并发生回发时,我都会丢失输入到控件中的所有值。奇怪的是,如果我在初始页面加载后的任何时间使用 ChangeMode 将 FormView 设置为插入模式,我就没有问题。我已经使用调试器逐步完成了代码,一切似乎都在正确地发生,但是在我的 DropDownList 事件处理程序运行后的某个时间,一切似乎都被重置了。
这里发生了什么?
更新:我注意到我的 FormView 位于带有 runat="server" 和 enableviewstate="false" 的 div 标签内。为容器 div 启用视图状态后,我开始看到稍微不同的行为。FormView 在第一次回发后仍然不保留值,但现在后续回发工作正常并且值被保留。
任何想法将不胜感激。