Javascript JQueryUI对话框显示在刷新浏览器上
我有一个用C#服务器端代码编写的ASP.NET应用程序。当我刷新浏览器时,JQueryUI对话框会出现,即使它不应该出现Javascript JQueryUI对话框显示在刷新浏览器上,javascript,jquery,html,asp.net,jquery-ui-dialog,Javascript,Jquery,Html,Asp.net,Jquery Ui Dialog,我有一个用C#服务器端代码编写的ASP.NET应用程序。当我刷新浏览器时,JQueryUI对话框会出现,即使它不应该出现 ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true); function ShowPopup() { $("#dialog-modal").dialog({ hei
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
问题是我需要创建在服务器端代码中显示为对话框的DIV的内容
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
创建内容后,我使用下面的RegisterStartupScript方法和JavaScript函数将脚本发布到浏览器:
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
ClientScript.RegisterStartupScript(this.GetType(),“Popup”,“ShowPopup();”,true);
函数ShowPopup(){
$(“#对话框模式”).dialog({
身高:330,
宽度:700,
模态:true,可调整大小:false,
按钮:{
关闭:函数(){
$(this.dialog('close');
}
}
});
};
电子邮件主题
但是当我刷新对话框时,即使它不是应该的,也会显示出来
展示
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
我知道有一个自动打开属性可以
设置为false
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
我不能使用它,因为身体是在上创建的
服务器端和回发发生对话框在假定时不显示
设置为自动打开时显示:false
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
问题:你可以吗
告诉我如何在浏览器关闭时使对话框从不显示
刷新
ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);
function ShowPopup() {
$("#dialog-modal").dialog({
height: 330,
width: 700,
modal: true, resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
};
<div id="dialog-modal" title='Message Preview' style="display: none;">
<br />
<div style="width:100%">
<div style="width:100px;padding-right:20px; float:left">Email Subject</div><div><asp:Literal ID="lblEmailSubject" runat="server"></asp:Literal></div>
</div>
<br />
<div style="width:100%">
<asp:Literal ID="lblEmailBody" runat="server"></asp:Literal>
</div>
</div>
您是说您永远不希望在有人加载或刷新页面时出现对话框-只有在客户端执行某些操作时才会出现?永远不希望在刷新页面时出现对话框您可以发布调用RegisterStartupScript的位置和方式吗?你是用PageLoad做的吗?你说“它不应该显示”,但如果你不检查IsPostback(例如),它将始终显示;RegisterStartupScript每次都注册一个脚本,在页面加载时执行。我不是在页面加载时执行。我正在做它的按钮点击服务器端代码