2

現在、JavaScript .showModalDialog 関数を使用して、親ページからポップアップ ウィンドウを開きます。ポップアップ ウィンドウには、ユーザーが ASP.NET ボタンをクリックしてフォームを送信したときに表示されない ASP.NET 検証コントロールが含まれています。ページにエラーがある場合、検証メッセージは表示されず、レコードはサーバー側で更新されず、ポップ ウィンドウが閉じます。

(asp.net 検証コントロールは、ポップアップ ウィンドウがサーバー ポストバックを実行するのを停止しません)

以前にこの動作を経験した人はいますか?それを防ぐ方法はありますか?

これが私のshowModalDialong呼び出しのソースコードです:

function OpenChildWindow(id)
{
    var sFeatures = sFeatures="dialogHeight: 525px;";
    sFeatures += "dialogWidth: 900px;";
    sFeatures += "scroll: yes;";
    sFeatures += "status: no;";
    sFeatures += "resizeable: no;";

    var url = "MyPopUp.aspx?ID=" + id;
    var childName = "ChildForm";

    entryWindow = window.showModalDialog(url, childName, sFeatures);

    if (entryWindow == true)
    {
        window.document.getElementById("<%= btnUpdateParent.ClientID %>").click();
    }
}

注: ポップアップ モーダルを閉じると、ASP.NET ボタンが「クリック」されて親の ASP.NET UpdatePanel が更新され、ポップアップ ウィンドウで変更されたレコードへの変更が表示されます。

4

1 に答える 1

1

これは、モーダル ダイアログとポストバックに関する悪名高い問題が原因である可能性があると思います。window.showModalDialog で開いたページの head タグに以下を追加してみてください。

<base target="_self" />
于 2009-02-18T21:15:25.060 に答える