为什么在Webcontrol点击后关闭我的jQuery对话框?

时间:2012-09-24 06:57:00

标签: c# jquery asp.net modal-dialog jquery-dialog

我使用ASP.NET和jQuery,我使用Dialog。在这个Dialog中我有Webcontrols。如果我单击对话框中的一个按钮,然后对话框关闭,但如果我在此对话框中搜索用户,我不希望该对话框关闭:(

以下是我的问题的示例:

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

enter image description here

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

enter image description here

如果我单击选项卡“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控件,我可以做什么,Dialog不会收集:/

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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>

我认为这会对你有所帮助......