【发布时间】:2010-05-25 20:38:36
【问题描述】:
我在这里有一个非常奇怪的行为:我在 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)中的任何一个。
【问题讨论】: