0

我使用 ASP.NET 和 jQuery,我使用对话框。在此对话框中,我有 Web 控件。如果我单击对话框中的按钮,则对话框关闭,但如果我在此对话框中搜索用户,我不希望对话框关闭:(

这是我的问题的一个例子:

如果我单击 lupe 符号,我可以在我们的 Active Directory 中打开一个用于搜索用户的对话框。

在此处输入图像描述

但是如果我点击对话框上的搜索按钮,那么它首先关闭,如果我打开对话框,我可以看到找到的用户:/

在此处输入图像描述

如果我单击选项卡“Signatur”,我会遇到同样的问题如果我单击按钮,则页面会使用选项卡“Abwesenheit”加载新页面,但是如果我单击选项卡“signatur”agein,则会创建 Signatur :(

我的代码:(对话框的 jquery 代码)

$(document).ready(function () {
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        resizable: false,
        height: 450,
        width: 600,
        closeOnEscape: false,
        buttons: {


        }
    });

    $("#dialog").parent().appendTo($("form:first"));

    $("#DialogOpen").click(function () {
        $("#dialog").dialog("open");
        $("#dialog").parent().appendTo($("form:first"));
        return false;
    });
});

这是我的 ASPX:

<div id="dialog" title="Vertreterliste">
            <asp:TextBox ID="txtBox" runat="server" ></asp:TextBox>

            <asp:ImageButton ID="imageSearch" runat="server" 
                ImageUrl="~/Theme/Pictures/lupe.jpg" Height="24px" Width="25px" 
                onclick="imageSearch_Click" />

                <hr />

             <asp:ListView runat="server" ID="myListView" OnItemCommand="myListView_ItemCommand" 
                   OnSelectedIndexChanging="myListView_SelectedIndexChanging">


      ....

        </asp:ListView>

        </div>

如果我单击 Web 控件,我该怎么做才能使对话框不关闭:/

4

2 回答 2

2

您的对话框正在关闭,因为您的 Web 控件正在回发,因此,整个页面正在发布到服务器,并且当它再次返回时,它没有对话框是否打开的信息。

因此,您可以通过使用 UpdatePanels 或通过 ajax 发送请求来停止关闭 Web 控件的对话框。

或者您可以将对话框打开状态存储在隐藏字段中,当页面加载回来时,检查此隐藏字段值并根据值再次使用客户端脚本打开您的对话框。

于 2012-09-24T07:03:06.690 回答
1

我在 div 下面打开。当我单击删除按钮中的删除按钮时,我有类似“lnkDelete”的类。

<div id="dialog-confirm" title="Delete Country">
        <p>
            Are you soure you wont to delete this record ?</p>
    </div> 




<script type="text/javascript">
        $(function () {
            $(".lnkDelete").button();
            $("#dialog-confirm").dialog({
                autoOpen: false,
                model: true,
                width: 300,
                resizable: false,
                height: 200
            });

            $(".lnkDelete").click(function (e) {
                e.preventDefault();
                var targeturl = $(this).attr("href");


                $("#dialog-confirm").dialog({
                    buttons: {
                        "Confirm": function () {
                            window.location.href = targeturl;
                        },
                        "Cancel": function () {
                            $(this).dialog("close");
                        }
                    }
                });
                $("#dialog-confirm").dialog("open");
            });
        });
    </script>

我想这会对你有所帮助......

于 2012-09-24T07:19:03.457 回答