我似乎对他们没有任何问题。
我有一个更新面板,里面有一些复选框。我检查它们,点击我的保存按钮,但它会导致更新面板回发(刷新)并将它们全部设置为空白。重新绘制方法在按钮代码之前运行。
使用带有可以操作的复选框的更新面板的正确方法是什么?
编辑:我认为问题可能是一个基本的设计问题。我真的需要一个关于如何正确使用updatepanel的完整教程。
答案 0 :(得分:10)
代码示例:
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel1">
<ContentTemplate>
<asp:CheckBox runat="server" ID="myCheckBox" Caption="CheckBox"/>
<asp:Button runat="server" ID="saveButton"
Caption="Save" OnClick="SaveButtonClick"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="saveButton" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
确保:
答案 1 :(得分:3)
您的代码应该看起来像
if(!page.ispostback)
{
re-drawing();
}
当你按下Save按钮时,你的re-drawing()方法被调用,它再次刷新你的复选框。异步回发表现并点击页面方法与完全回发相同但刷新updatepanels中的值
同时检查此网址 http://ajax.net-tutorials.com/controls/updatepanel-control/
答案 2 :(得分:2)
确保“保存”按钮位于“更新面板”内,以便启动,如果没有,则在“更新面板”的<Triggers>
部分中指定为更新面板的触发器。
<asp:UpdatePanel ID="MyControlPanel" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="SaveButton" />
</Triggers>
<ContentTemplate> ...
您能为UpdatePanel显示一些代码吗?
答案 3 :(得分:0)
如果使用服务器控件来呈现复选框,则应将EnableViewState="true"
属性添加到这些控件和更新面板。
如果您的复选框不是服务器控件,则从更新面板中删除它们,仅在其中包含服务器控件。这导致在页面上保留多个更新面板,这通常不是一个大问题。
答案 4 :(得分:0)
如果您没有ScriptManager对象,请将其添加到页面中。设置EnablePartialRendering =“true”。将UpdatePanel放在页面上的任何其他位置,并将您想要的内容放在UpdatePanel中的标记内。