代码之家  ›  专栏  ›  技术社区  ›  marc_s MisterSmith

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

  •  0
  • marc_s MisterSmith  · 技术社区  · 16 年前

    我在这里有一个非常奇怪的行为:我在jqueryui中创建了一个小弹出对话框,在我的测试HTML页面中,它可以完美地工作。当我点击按钮时,弹出窗口出现,覆盖背景,并保持在屏幕上,直到我点击提供的两个按钮之一(确定或取消)。

    所以现在我想把它添加到我的ASP.NET3.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>
    

    因此,在我的gridview中,我有一个带有图像按钮的列,当用户单击这些按钮时,我调用一个小javascript函数来显示jQuery UI对话框:

    function showDialog()
    {
        $("#dlg-discount").dialog('open');
        $("#txtAmount").focus();
    }
    

    在这两种情况下,对话框页面/弹出窗口在一秒钟或更短的时间后再次消失-我没有点击任何东西!

    它似乎与 this question 但在我的情况下,提供的解决方案不起作用。 This one here

    关于这里发生的事情有什么想法/提示/提示吗??

    更新: 好了,有一个问题解决了——不管出于什么原因,默认的MS Ajax东西都是在我的弹出对话框中添加某种“观察者”,并在它出现后立即关闭它:-(

    OnClientClick="showDialog();" OnClientClick="showDialog(); return false;" 这样就不会再发生了——对话框会弹出,直到我点击两个按钮中的任何一个( OK Cancel

    1 回复  |  直到 9 年前
        1
  •  2
  •   Dave Anderson    16 年前

    在哪里创建对话框?应该有一些这样的代码,当DOM准备就绪时调用它们;

    $(document).ready(function(){
    
      var dialogOpts = {
        autoOpen: false,
        modal: true,
        width: 620,
        height: 660
      };
    
      $("#dlg-discount").dialog(dialogOpts);
    
    }
    

    然后你就可以打电话了 $("#dlg-discount").dialog('open')