代码之家  ›  专栏  ›  技术社区  ›  Vivian River

当在jquery对话框中单击控件时,如何使我的ASP.NET页回发?

  •  0
  • Vivian River  · 技术社区  · 15 年前

    我在jquery用户界面上遇到了一些问题。我用jquery ui创建了一个对话框:到目前为止,还不错。我在jquery ui对话框中设置了一个表单,然后又是另一个故事。我写了一个非常简单的页面来说明:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="testpage.aspx.cs"     Inherits="RiverCascade.testpage" %>
    <head runat="server">    
    <link rel="Stylesheet" type="text/css" href="Stylesheet1.css" />
    <link rel="Stylesheet" type="text/css" href="css/smoothness/jquery-ui-1.8.5.custom.css" />
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js"></script>
    <script type="text/javascript">
    function showModal() {
        $("#modalBox").dialog();
    }
    $(document).ready(showModal);    
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
        <div>    
        <asp:Button runat="server" ID="button1" OnClick="button1_click" />                
            <div style="display:none" id="modalBox">
            <asp:Button runat="server" ID="button2" OnClick="button2_click" />        
            </div>
    
        </div>
        </form>
    </body>
    </html>
    

    在上面的代码中,可以看到我刚刚导入了jquery、jquery ui和样式表,并设置了一个带有对话框的页面。对话框外有一个ASP控件按钮1,对话框内有一个ASP控件按钮2。

    当我单击按钮1时,事件处理程序被调用,一切正常。但是,当单击jquery对话框中的按钮2时,不会发生任何事情。

    我的网页为什么会这样?我怎么修?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Roman    15 年前

    以下来自jquery用户界面对话框 source (你得向下滚动很远)。

    // ... more code here ...
    uiDialog = (self.uiDialog = $('<div></div>'))
                .appendTo(document.body)
                .hide()
                .addClass(uiDialogClasses + options.dialogClass)
    // ... more code here ...
    

    基本上是因为jquery对话框创建了一个新元素并将其附加到 body 页(在ASP.NET窗体之外)。因为您的按钮现在不在ASP.NET表单中,所以不会导致定期提交。

    蒂姆·詹姆斯的解决方案应该能掩盖这个问题。

        2
  •  2
  •   Tim B James    15 年前

    尝试将此添加到按钮2

    UseSubmitBehavior="false"