我在更新面板中有两个复选框。一个是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 会改变,因为我正在对第二个更新面板进行部分回发。
如果我将两个复选框移出更新面板,那么两者都会保留其复选标记(正如我预期的那样)。
答案 0 :(得分:2)
我的猜测是,您需要配置更新面板,以便仅更新实际使用的更新面板。更新UpdatePanel2时,两个面板都在更新。我相信只要你在UpdatePanel1上设置UpdateMode =“Conditional”属性,你就会得到所需的效果。
您可以在UpdateMode属性上看到此MSDN文档。