ModalPopupExtender表示時に実行するJavaScriptを指定する方法
-
08-06-2019 - |
質問
ASP.NET AJAX モーダルポップアップエクステンダー もっている OnCancelScript
そして OnOkScript
プロパティがありますが、ないようです OnShowScript
財産。ポップアップが表示されるたびに実行されるJavaScript関数を指定したいと思います。
過去の状況では、 TargetControlID
ダミー コントロールを作成し、最初に JS コードを実行し、次に JS メソッドを使用してポップアップを表示する独自のコントロールを提供します。ただし、この場合は、クライアント側コードとサーバー側コードの両方からポップアップを表示しています。
これを行う方法を知っている人はいますか?
ところで、TinyMCE エディターを作成したいモーダルにテキストボックスがあるため、これが必要でした。ただし、TinyMCE init スクリプトは非表示のテキストボックスでは機能しないため、モーダルが表示されたときにスクリプトを実行する方法を見つける必要がありました。
解決
うーん...私は かなり確実な MPE のイベントが予定されていると...これは思いつきませんが、page_load で表示されるイベントにイベント ハンドラーを追加できると思います
function pageLoad()
{
var popup = $find('ModalPopupClientID');
popup.add_shown(SetFocus);
}
function SetFocus()
{
$get('TriggerClientId').focus();
}
これがサーバー側からの呼び出しに役立つかどうかはわかりません
他のヒント
マークアップでこれを行う簡単な方法は次のとおりです。
<ajaxToolkit:ModalPopupExtender
ID="ModalPopupExtender2" runat="server"
TargetControlID="lnk_OpenGame"
PopupControlID="Panel1"
BehaviorID="SilverPracticeBehaviorID" >
<Animations>
<OnShown>
<ScriptAction Script="InitializeGame();" />
</OnShown>
</Animations>
</ajaxToolkit:ModalPopupExtender>
を使用する必要があります。 動作ID 価値 mpeBID
ModalPopupExtender の。
function pageLoad() {
$find('mpeBID').add_shown(HideMediaPlayer);
}
function HideMediaPlayer() {
var divMovie = $get('<%=divMovie.ClientID%>');
divMovie.style.display = "none";
}
ボタンやハイパーリンクなどを使用してポップアップの表示をトリガーしている場合、トリガーの onClick イベントに追加のハンドラーを追加して、モーダル ポップアップを起動し、同時に JavaScript を実行することもできますか?
ModalPopupExtender は、「トリガー」要素として指定するボタン/ハイパーリンクを変更します。追加した onclick スクリプトは、ポップアップが表示される前にトリガーします。ポップアップが表示された後にスクリプトを起動したいと考えています。
また、サーバー側からモーダルを表示するときの問題がまだ残っています。
css(display:none;)で非表示にすると、Invisible Textboxで動作します(display:none;)regatepanelも使用している場合は、ターゲットコントロリッドで「オンクリック」イベントを作成します。
2 つのモーダル フォームの場合:
var launch = false;
var NameObject = '';
function launchModal(ModalPopupExtender) {
launch = true;
NameObject = ModalPopupExtender;
}
function pageLoad() {
if (launch) {
var ModalObject = $find(NameObject);
ModalObject.show();
ModalObject.add_shown(SetFocus);
}
}
function SetFocus() {
$get('TriggerClientId').focus();
}
サーバ側:手を引いて
protected void btnNuevo_Click(object sender, EventArgs e)
{
//Para recuperar el formulario modal desde el lado del sercidor
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>launchModal('" + ModalPopupExtender_Factura.ID.ToString() + "');</script>", false);
}
var launch = false;
function launchModal() {
launch = true;
}
function pageLoad() {
if (launch) {
var ModalPedimento = $find('ModalPopupExtender_Pedimento');
ModalPedimento.show();
ModalPedimento.add_shown(SetFocus);
}
}
function SetFocus() {
$get('TriggerClientId').focus();
}