2

マスター ページを使用している A という aspx ページがあります。ページAにはリンクボタンがあり、リンクボタンをクリックすると、Bというaspxをロードするjqueryダイアログを開きたいと思います。これは私にとってはうまくいきます。ページ B にasp.net キャンセル ボタンがあり、enter code hereキャンセル ボタンをクリックすると、jquery ダイアログを閉じてページ A にとどまりたいと思います。私のコードでは、jquery ダイアログは閉じられますが、ブラウザでページ B がリロードされます。

マスターページ

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="jQueryTest.Site1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>

    <script src="../javascript/jquery-1.7.2.min.js" type="text/javascript"></script>

    <script src="../javascript/jquery-ui-1.8.22.custom.min.js" type="text/javascript"></script>

    <link href="/css/ui-lightness/jquery-ui-1.8.22.custom.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript">
    $(document).ready(function () {
        var mydiv = $("#dialog").dialog({   
            autoOpen: false,
            resizable: false,
            height: 700,
            width: 900,
            modal: true            
        });        
        mydiv.parent().appendTo(jQuery("form")); 


        });

        function showPanel(){
        var mydiv = $("#dialog")
        // Load the content using AJAX
        mydiv.load('/WebForm1.aspx');
        // Open the dialog        
        mydiv.dialog('open');

        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

default.aspx (ページ A)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" MasterPageFile="~/Site1.Master"
    Inherits="jQueryTest._Default" %>

<asp:Content ID="contect1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div>
        <asp:LinkButton ID="lnkChangePwd" Text="Click" OnClientClick="showPanel();return false;"
            runat="server"></asp:LinkButton>
    </div>
    <div id="dialog" style="width: 60%; height: 45%" title="Change password">
    </div>   

</asp:Content>

webform1.aspx (ページ B)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="jQueryTest.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>

    <script src="../javascript/jquery-1.7.2.min.js" type="text/javascript"></script>

    <script src="../javascript/jquery-ui-1.8.22.custom.min.js" type="text/javascript"></script>

    <link href="/css/ui-lightness/jquery-ui-1.8.22.custom.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript">



    $(document).ready($(function () {
     $("#<%=Button1.ClientID %>").bind("click", function (event) {
    $("#dialog").dialog("close");    

});

}));

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        this is webform 1
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>
4

2 に答える 2

2

このようなものは私のために働いています...

ダイアログを表示するページ...

<html>
<head>
    ...link js files here...
</head>
<body>
    <div id="deleteDialog"></div>
</body>
</html>

ダイアログの内容であるページ...

<html>
<head>
    ...link js files here...
</head>
<body>
    <input type="submit" value="Close" id="uxCloseDialog" />
</body>
</html>

ダイアログを表示して閉じるjquery...

var deleteDialog;

deleteDialog = $("#deleteDialog").dialog({
    autoOpen: false,
    resizable: false,
    width: "auto",
    modal: true
});

$(".button-delete-24").click(function () {
    var id = $(this).attr('data-id');
    deleteDialog.empty();
    deleteDialog.load("/myDialogPage.aspx"
        , function () {
            $("#uxCloseDialog").click(function () {
                deleteDialog.dialog("close");
                return false;
            });
        });
    deleteDialog.dialog("open");
    return false;
});

私はjQuery UIを使用しているので、利用できる追加機能があるかどうかはわかりません.

于 2012-08-08T16:45:55.120 に答える
0

window.parent を使用してみてください:

window.parent.jQuery("#dialog").dialog('close');
于 2012-08-08T17:48:10.220 に答える