AjaxToolkit ModalPopUpExtenderを使用するポップアップを含んで自己しようとしています
-
21-08-2019 - |
質問
私は自分のサイト全体に存在する必要がありますAJAXのポップアップの3種類があります。私は単純に各1用のユーザーコントロールを作成し、それぞれの内側パネルとモーダルポップアップエクステンダを置くことができることを期待していたが、これは動作していないようです。誰も前にこれをしようとしているか、それぞれが異なるページにポップアップするために、私はコードの重複を避けることができる方法についての勧告がありますか?ありがとう!
解決
ああ、私は信じているユーザーコントロールで自分の問題を考え出します。
ModalPopUpExtenderは、そうでなければ、エラーが発生設定するTARGETIDプロパティを必要とします。これは私がちょうど何もしないダミーのリンクボタンを作成し、私はVisibleプロパティをFalseに設定し、ユーザーコントロールに座っているので。
<asp:LinkButton ID="lnkBlank" runat="server" Visible="false" />
<asp:Panel ID="plContainer" style="display: none;" runat="server">
Hello?
</asp:Panel>
<cc1:ModalPopupExtender ID="mpe" runat="server"
BehaviorID="test"
TargetControlID="lnkBlank"
PopupControlID="plContainer" />
どうやらそれはそれを感謝していないと私は、VisibleプロパティをTrueに設定した瞬間は、それが仕事を始めました。推論は、私が思うだろう、以来targetIDの何のためにあるのかわからない、ほとんどのポップ・アップはページに関する複数のリンクから呼び出すことができます。おそらく、私はまだこのコントロールを使用することを想定している方法については完全には明らかではないんです。
他のヒント
1つのオプションは、asp.netユーザーコントロール(た.ascxページ)でポップアップを書いて、あなたがポップアップを必要とするページにこれを含めることであろう。ポップアップを表示し、あなたがする必要があるときに親ページからそれを呼び出しますASCXページ内のパブリックメソッドを持っています。すでに親ページにスクリプトマネージャを持っている場合は、作業からこれを停止するものがあってはならないことを、その後ASCXページで二つ目を持っていますが、他のことはできません。この情報がお役に立てば幸い!
編集:ここに私のモーダルポップアップエクステンダコントロールは次のように...見えるものです。
<cc1:ModalPopupExtender
ID="mpeClassroom"
BackgroundCssCLass="modalBackground"
runat="server"
CancelControlID="lbClose"
OnOkScript="onOk()"
TargetControlID="Button1"
PopupControlID="pnlClassroom">
</cc1:ModalPopupExtender>
ページの後ろに私のコードでは、私の方法は、単にmpeClassroom.Show()を呼び出します。
TrgetControlIDなどの隠しリンクでの問題は、ということです。 uはfalseとその可視性を設定すると、サーバーは、同様にそれをレンダリングされません。 PopExtenderは、ページ上のコントロールを見つけることができません。
なし:の代わりにfalseにその可視性を設定すると、ディスプレイにスタイルを適用してみてください。これは動作するはずです!