我在这里有一个非常奇怪的行为:我在jQuery UI中创建了一个小弹出对话框,在我的测试HTML页面中,它完美无缺。当我点击按钮时,弹出窗口出现,覆盖背景,并保持在屏幕上,直到我点击提供的两个按钮之一(确定或取消)。
所以现在我想将它添加到我的ASP.NET 3.5应用程序中。我想将它添加到用户控件(ASCX)内的GridView中,该控件位于母版页内的页面(ASPX)上。 主页上引用了jQuery 1.4.2和jQuery UI 1.8.1脚本:
<body>
<form id="XXXXXX" runat="server">
<Ajax:ScriptManager ID="masterScriptManager" runat="server" ScriptMode="Auto">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.2.min.js" />
<asp:ScriptReference Path="~/Scripts/jquery-ui-1.8.1.custom.min.js" />
</Scripts>
</Ajax:ScriptManager>
我不得不将其更改为使用Ajax脚本管理器,因为将它们添加到as中从未工作过。
所以在我的gridview中,我有一个带有图像按钮的列,当用户点击这些按钮时,我调用一个小的javascript函数来显示jQuery UI对话框:
function showDialog()
{
$("#dlg-discount").dialog('open');
$("#txtAmount").focus();
}
当我在MS IE 8中运行此页面时,我得到一个单独的页面,并在页面顶部,我得到了我的内容,具有适当的背景颜色和所有。在Firefox 3.5.6中,我确实将对话框作为弹出窗口。
在这两种情况下,对话框页面/弹出窗口会在一秒或更短时间后再次消失 - 没有我点击任何内容!
它似乎与this question相似,但是在我的情况下提供的解决方案不起作用。 This one here似乎也很相似但是:所提出的解决方案在我的案例中似乎不起作用......
关于h ****在这里发生了什么的任何想法/提示/提示??
谢谢!
更新:好的,一个问题解决了 - 看来无论出于何种原因,默认的MS Ajax都会在我的弹出对话框中添加某种“观察者”并立即关闭它它出现了: - (
所以我将OnClientClick="showDialog();"
更改为OnClientClick="showDialog(); return false;"
以及如何不再发生这种情况 - 弹出对话框并保持不变,直到我点击两个按钮之一(OK
和Cancel
)。
答案 0 :(得分:2)
你在哪里创建对话框?应该有一些像这样的代码在DOM准备好时被调用;
$(document).ready(function(){
var dialogOpts = {
autoOpen: false,
modal: true,
width: 620,
height: 660
};
$("#dlg-discount").dialog(dialogOpts);
}
然后你可以在你的onclick方法中调用$("#dlg-discount").dialog('open')
。