web-dev-qa-db-ja.com

TargetControlIDを設定せずにModalPopupExtenderを使用しますか?

サブフォームを表示するために、asp.netページでmodalpopupextenderを使用したいと思います。ただし、特定の条件でのみ表示する必要があります。これらの条件は、JavaScriptコードの一部で決定されます。

したがって、最も重要なのは、モーダルポップアップがボタンのクリック時に表示される必要がないことです。ただし、プロパティTargetControlIDを空のままにすると、次の例外が発生します。

'ModalPopupExtender1'のTargetControlIDが無効です。値をnullまたは空にすることはできません。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコードの発生場所については、スタックトレースを確認してください。

例外の詳細:System.InvalidOperationException:「ModalPopupExtender1」のTargetControlIDが無効です。値をnullまたは空にすることはできません。

非表示のボタンにTargetControlIDを設定するだけですか、それとももっと適切なオプションがありますか?

21
Herman Cordes

私の知る限り、TargetControlIDを非表示のボタン(display:none;)に設定するのが最善の方法です。

23
Mike

TargetControlIDをHiddenFieldタイプに設定することもできます。そうすれば、ボタンも必要ありません

12
lovingit

ボタンを作成してTargetControlIdとして設定し、style = "display:none"を指定します

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
        CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender>

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" />
0
fahim