提交一个UpdatePanel会清除其他UpdatePanel中的复选框输入吗?

我在更新面板中有两个复选框。一个是ASP.NET CheckBox控件,另一个是HTML <input> 元素。我在不同的更新面板中有一个按钮。

所以这是页面的相关部分:


    
        <input type="checkbox" id="check1" name="check1" />HTML Input

我勾选两个复选框,然后单击按钮。我所看到的是复选标记从仅仅是HTML的复选标记中消失,但复选标记仍然存在于CheckBox控件中。

为什么?我原以为第一个更新面板中的 nothing 会改变,因为我正在对第二个更新面板进行部分回发。

如果我将两个复选框移出更新面板,则两者都保留其复选标记(正如我预期的那样)。

1
Mitchel Sellers的回答解释了这一点。我将补充说,我不应该对CheckBox控件的行为与输入元素的行为有所不同(即使它们都呈现为输入元素)。页面将在每次页面生命周期中从其默认值开始,但CheckBox将在其LoadPostData方法中恢复已发布的值。
额外 作者 Tim Goodman,

1 答案

我的猜测是你的更新面板需要配置,以便只更新实际使用的更新面板。更新UpdatePanel2时,两个面板都在更新。我相信只要您在UpdatePanel1上设置UpdateMode =“Conditional”属性,您将获得所需的效果。

您可以在 UpdateMode 属性。

2
额外
这解释了,谢谢。我想我认为你从UpdateMode =“条件”得到的行为是默认的,但事实并非如此。
额外 作者 Tim Goodman,