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

时间:2011-10-27 19:00:35

标签: asp.net checkbox updatepanel

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

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

<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <input type="checkbox" id="check1" name="check1" />HTML Input<br />
        <asp:CheckBox runat="server" ID="check2" Text="ASP CheckBox"></asp:CheckBox><br />
    </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpdatePanel2">
    <ContentTemplate>
    <asp:Button runat="server" ID="Submit" Text="Submit" OnClick="Submit_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

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

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

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

1 个答案:

答案 0 :(得分:2)

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

您可以在UpdateMode属性上看到此MSDN文档。