ASP.NET页面上的jQuery UI对话框(用户控件内)

时间:2010-05-25 11:00:57

标签: asp.net jquery-ui

我在这里有一个非常奇怪的行为:我在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;"以及如何不再发生这种情况 - 弹出对话框并保持不变,直到我点击两个按钮之一(OKCancel)。

1 个答案:

答案 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')