我正在尝试更新模式对话框的内容。我在对话框中使用了更新面板,但页面刷新,因此对话框已关闭。
$("#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();
}
有人能告诉我在不刷新页面的情况下更新对话框需要做些什么吗?
答案 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
刷新时它就不会被保留。从本质上讲,页面的这一部分将被重新创建(部分页面回发),并且您在文档加载时连接的任何事件都将丢失。我过去遇到过这种情况 - 我很确定这就是正在发生的事情。
希望这有帮助。