你如何正确使用UpdatePanel? (asp.net)

时间:2009-10-06 12:02:38

标签: .net asp.net ajax updatepanel

我似乎对他们没有任何问题。

我有一个更新面板,里面有一些复选框。我检查它们,点击我的保存按钮,但它会导致更新面板回发(刷新)并将它们全部设置为空白。重新绘制方法在按钮代码之前运行。

使用带有可以操作的复选框的更新面板的正确方法是什么?

编辑:我认为问题可能是一个基本的设计问题。我真的需要一个关于如何正确使用updatepanel的完整教程。

5 个答案:

答案 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. UpdatePanel的UpdateMode是条件
  2. Triggers-section中包含的SaveButton作为AsyncPostBackTrigger的ControlID

答案 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中的标记内。