jquery对话框在回发时重新出现
本文关键字:新出现 对话框 jquery | 更新日期: 2023-09-27 18:07:07
我有一个GridView与TemplateField持有一个LinkButton。当单击此按钮时,它将另一个隐藏TemplateField中的一些XML转换为字符串,并将其分配给隐藏div中的标签,以便在模态对话框中使用。目前,对话框按预期打开并显示适当的信息,它关闭,我可以在网格中选择另一个记录来查看,没有问题。这就是它出错的地方,我还没能找到解决方案。如果我在页面上执行其他操作导致回发,则要打开的最后一个对话框将在新页面加载时打开。
这是我的相关标记:
<script type="text/javascript">
$(document).ready(function() {
$("#txtBeginDate").datepicker();
$("#txtEndDate").datepicker();
$("#response").dialog({
autoOpen: false,
modal: true,
height: "auto",
width: "auto",
title: "Equifax Response",
close: function(ev, ui) {
$(this).dialog('destroy').remove();
}
});
$("[id*=lnkEquifaxResponse]").on("click", function EquifaxResopnse() {
$("#lblDialog").empty();
});
if ($("#lblDialog").text() != "") {
$("#response").dialog("open");
}
});
</script>
<div id="response" visible="false">
<asp:Label ID="lblDialog" runat="server" ></asp:Label>
</div>
<div id="Gridview">
<asp:GridView ID="grClientTransactions" runat="server" AllowPaging="True"
PageSize="25" AutoGenerateColumns="False" DataKeyNames="ResponseXML"
EmptyDataText="Record not found." EmptyDataRowStyle-BackColor="#CCCCCC" EmptyDataRowStyle-Font-Bold="true"
CssClass="mGrid" PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt"
OnPageIndexChanging="grClientTransactions_PageIndexChanging"
onrowcommand="grClientTransactions_RowCommand">
<Columns>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<asp:LinkButton ID="lnkEquifaxResponse" runat="server" CommandName="EquifaxResponse" Text="View" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="false" HeaderText="Equifax Response">
<ItemTemplate>
<asp:Label ID="lblEquifaxResponse" runat="server" Text='<%# Bind("ResponseXML")%>' ></asp:Label></div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pgr" />
<AlternatingRowStyle CssClass="alt" />
</asp:GridView>
</div>
我是一个新的编程,所以任何帮助将非常感激。
像这样更新代码:
<div id="response" visible="false">
<asp:Label ID="lblDialog" runat="server" EnableViewState="False"></asp:Label>
</div>
据我所知,当您单击链接时,lblDialog将在服务器上填充一些数据,并且由于viewstate已启用,因此每次回发时都会恢复数据。则if
返回true,并出现弹出窗口
if ($("#lblDialog").text() != "") {
$("#response").dialog("open");
}
如果你将添加enableviewstate="false", lblDialog的内部文本将在第二次回发时丢失,并且在页面加载后标签将为空(如果没有单击网格中的链接)。
你可以在这里获得更多关于viewstate及其工作原理的信息