当FormView设置为插入模式时,控制在回发后不保留值

jos*_*shb 6 asp.net formview

我正在使用Page_Load事件中的ChangeMode方法将FormView的CurrentMode设置为插入模式,如下所示:

if(!Page.IsPostBack)
{
    MyFormView.ChangeMode(FormViewMode.Insert);
}
Run Code Online (Sandbox Code Playgroud)

在我的FormView插入模板中,我有一个DropDownList控件,其AutoPostBack属性设置为true.我还在插入模板中有几个其他DropDownList和TextBox控件.

每当我更改DropDownList的选择并发生回发时,我将丢失输入到控件中的所有值.奇怪的是,如果我在初始页面加载后的任何时候使用ChangeMode将FormView设置为插入模式我没有问题.我已经使用调试器逐步完成了代码,所有内容似乎都正确地发生了但是在DropDownList的事件处理程序运行之后的某些时候,所有内容似乎都被重置了.

这里发生了什么?

更新:我注意到我的FormView位于div标签内,其中runat ="server"和enableviewstate ="false".一旦我为容器div启用了viewstate,我开始看到一个稍微不同的行为.在第一次回发后,FormView仍然不保留值,但现在后续回发工作正常,并保留值.

任何想法将不胜感激.

ssh*_*how 0

尝试

MyFormView.EnableViewState = true;
Run Code Online (Sandbox Code Playgroud)