1

モーダルダイアログで.aspxページを開く必要があります。ダイアログを開くために使用するJSコードは次のとおりです。

        if (url) {
            var fullPath = url + "/Validation.aspx";
        }
        else {
            alert("Could not find the location of the merge dialog.  Please contact your System admin and have them update the configuration entity.");
            return;
        }

        var features = "unadorned:yes;scroll:yes;resizable:yes;status:yes;dialogHeight:480px;dialogWidth:480px;";

        var args = {
            selected: selectedIds,
            page: pageIds,
            fetchXml: xml,
            entity: "xyz"
        };

        window.showModalDialog(fullPath, args, features);

私のvalidation.aspxページでは、JS引数を取得し、それらを非表示フィールドに割り当ててから再投稿できるようにする必要があります。これにより、これらの引数値をサーバー側で使用できるようになります。

これが私の.aspxページのJSコードです:

window.onload = function(){        
    if (!window.dialogArguments)
        return;

        var args = window.dialogArguments;
        ...
}

私はこれがウェブ全体で機能している例をたくさん見てきました。 しかし...私のwindow.dialogArgumentsは、私の.aspxページでは常に未定義です。何が得られますか?誰かが何か考えや解決策を持っていますか?

4

1 に答える 1

3

ここでの私の仮定は、ASPXダイアログページがクロスドメインで開かれていることです。

これは、親ページが1つのドメイン(別名:)http://abc/page.htmlにあり、子ダイアログページが次のような別のドメインにあることを意味しますhttp://def/dialog.html

この場合、dialogArgumentsとreturnValueへのアクセスに制限があるように見えます。たとえば、この前の回答に対するコメントを確認してください。

于 2012-10-23T22:09:19.023 に答える