ASP.NET - JQuery模式对话框中的UpdatePanel

时间:2011-06-08 01:41:21

标签: jquery asp.net updatepanel

我正在尝试更新模式对话框的内容。我在对话框中使用了更新面板,但页面刷新,因此对话框已关闭。

$("#dlg").dialog({
  autoOpen: false,
  bgiframe: true,
  width: 500,
  modal: true,
  closable: true,
  buttons: {
    Close: function () {
      $(this).dialog('close');
    }
  }
});
$("#dlg").parent().appendTo($("form:first"));

function openDialog() {
  $('#dlg').dialog('open')
  return false;
}

这是页面:

<div id="dlg">
<asp:UpdatePanel ID="upNewUpdatePanel" runat="server">
    <ContentTemplate>
    <asp:Label ID="updateLabel" runat="server"></asp:Label>
    </ContentTemplate>
    </asp:UpdatePanel>
</div>


<asp:LinkButton ID="updateSomething" runat="server" Text="Update" CausesValidation="false" OnClientClick="openDialog();" onclick="UpdateButton_Click" />

更新功能:

protected void UpdateButton_Click(object sender, EventArgs e)
{
    updateLabel.Text = DateTime.Now.ToString();
}

有人能告诉我在不刷新页面的情况下更新对话框需要做些什么吗?

2 个答案:

答案 0 :(得分:3)

您必须为updatepanel中的linkbutton定义AsyncPostBackTrigger,如下所示

<asp:UpdatePanel ID="upNewUpdatePanel" runat="server">
   <ContentTemplate>
       <asp:Label ID="updateLabel" runat="server"></asp:Label>
   </ContentTemplate>
   <Triggers>
       <asp:AsyncPostBackTrigger ControlID="updateSomething" EventName="Click" />
   </Triggers>
</asp:UpdatePanel>

答案 1 :(得分:2)

巴拉是对的。我非常清楚这一点,但有一点需要注意的是,如果你在$(document).ready()中对话,那么当UpdatePanel刷新时它就不会被保留。从本质上讲,页面的这一部分将被重新创建(部分页面回发),并且您在文档加载时连接的任何事件都将丢失。我过去遇到过这种情况 - 我很确定这就是正在发生的事情。

希望这有帮助。