ASP.NET:在 ModalPopupExtender 显示后保持页面解锁

问题描述 投票:0回答:1
c# asp.net ajax modalpopupextender
1个回答
0
投票

我不相信 AJ 工具包中的模式对话框允许这样做。

虽然我过去使用过 AJ 工具包中的模式对话框,但无法将对话框放置在屏幕上我想要的位置对我来说是一个大问题。唯一真正的好处是您不必编写任何 JavaScript,这很好。除了不必编写 JavaScript 之外,随着时间的推移,我已经跳到了 jQuery.UI 对话框。我发现 jQuery.UI 对话框比尝试使用引导对话框要好得多,标记也少得多。 jQuery.UI 对话框的唯一缺点是它看起来有点像 2000 年初网络时代的软件和对话框(它看起来不太好。但是,通过一些 css 工作,它的效果非常好。事实上,我将整个内容包装在用户控件中,现在我只需将控件拖放到表单中即可。

因此,jQuery.UI 对话框为我赢得了胜利。它还支持在页面上拖动,比 AJ Toolkit 对话框更好。

您的问题是使用 jQuery.UI 对话框的另一个示例和原因,因为它具有“模态”true 或 false 设置。

因此有了这个示例和标记:

标记:

<asp:Button ID="cmdTest" runat="server" Text="Show my pop up"
    OnClientClick="showpop(this);return false;"
    CssClass="btn" />
<br />
<br />

<label>First Name</label> <br />
<asp:TextBox ID="txtFirst" runat="server"></asp:TextBox> <br /> <br />

<label>LastName Name</label> <br />
<asp:TextBox ID="txtLast" runat="server"></asp:TextBox> <br /> <br />

<label>Hotel Name</label> <br />
<asp:TextBox ID="txtHotelName" runat="server"></asp:TextBox>


<div id="mypopdiv" style="display:none;padding:20px" >
    <h3>My Test popup area</h3>
    <label>My Notes Area</label>
    <br />
    <br />
    <asp:TextBox ID="txtNotes" runat="server"
        TextMode="MultiLine" Height="139px" Width="354px"
        ></asp:TextBox>
</div>

<script>

    function showpop(btn) {
        myDialog = $("#mypopdiv")
        myDialog.dialog({
            title: "Page notes",
            sizable: true,
            appendTo: "form",
            width: "400",
            modal: false,
            dialogClass: "dialogWithDropShadow",
            position: { my: 'left top', at: 'right bottom', of: btn },
            buttons: {
                Close: function () {
                    myDialog.dialog('close');
                }
            }
        })
    }
</script>

结果是这样的:

注意我如何自由打开、关闭、移动对话框,但我也可以编辑弹出对话框,或编辑/使用页面上的控件。

© www.soinside.com 2019 - 2024. All rights reserved.