第三个 asp.net 按钮不会打开 jQuery 对话框

本文关键字:对话框 jQuery 按钮 net asp 三个 | 更新日期: 2023-09-27 18:36:07

我有一个非常基本的测试 asp.net Web应用程序。有一个<asp:Button>会弹出一个jQuery对话框。在此对话框中,还有另一个<asp:Button>使<div>标签可见,在此<div>标签中还有第三个<asp:Button>。到目前为止一切都很好。现在根据我的代码,第三个按钮应该弹出第二个jQuery对话框,但这永远不会发生。我哪里弄错了?

这是我的aspx代码:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
    <asp:Button ID="btn" runat="server" Text="btn" />
    <div id="div1">
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
                <table>
                    <tr>
                        <td>
                            <asp:Button ID="btn1" runat="server" Text="btn1" OnClick="btn1_Click" />
                        </td>
                        <td>
                            <div id="div2" runat="server" visible="false">
                                <asp:Button ID="btn2" runat="server" Text="btn2" />
                            </div>
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    <div id="div3" style="display:none">
        <h1>test</h1>
    </div>

这是jQuery的代码:

<script type="text/javascript">
        var dialogOpts = {
            resizable: false,
            bgiframe: true,
            autoOpen: false,
            width: "710px"
        };
        $('#div3').dialog(dialogOpts).parent().appendTo($("#form1"));;
        $(function () {
            $("#div3").dialog({
                maxWidth: 1050,
                maxHeight: 534,
                width: 1050,
                height: 534,
                resizable: false,
                autoOpen: false,
                buttons: {
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
            $("#btn2").click(function () {
                $("#div3").dialog("open");
                return false
            });
        });
    </script>
    <script type="text/javascript">
        var dialogOpts = {
            resizable: false,
            bgiframe: true,
            autoOpen: false,
            width: "710px"
        };
        $('#div1').dialog(dialogOpts).parent().appendTo($("#form1"));;
        $(function () {
            $("#div1").dialog({
                maxWidth: 1050,
                maxHeight: 534,
                width: 1050,
                height: 534,
                resizable: false,
                autoOpen: false,
                buttons: {
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
            $("#btn").click(function () {
                $("#div1").dialog("open");
                return false
            });
        });
    </script>

它被放置在正文中,到目前为止,只有第一个jQuery弹出。这是我的 c# 函数,它使第二个 <div> 标记可见:

 protected void btn1_Click(object sender, EventArgs e)
    {
        div2.Visible = true;
    }

第三个 asp.net 按钮不会打开 jQuery 对话框

visible = false

基本上阻止元素呈现。如果为未呈现的内容注册 onclick 事件(未呈现,不是显示:无,也不是可见性:隐藏,您的按钮实际不驻留在页面中),则 onclick 事件根本不会注册到任何内容。在更新面板中显示按钮后,单击时不会运行任何内容,因为尚未设置单击处理(该按钮

$("#btn2").click(function () {
            $("#div3").dialog("open");
            return false
        });