0

コード ビハインドから JavaScript 関数を起動する方法がわかりません。

これが私のaspxページの私のjavascriptです...

<script type="text/javascript">
...
function HidePopup() {
  $(function() {
    $("#popup").dialog("close");
  });
});

LinkBut​​tonShowPopupのイベントに対して発生する同様の関数が呼び出されます。OnClientClickそれは働いています。ただし、このボタンを押して開始される関数の最後で、JQuery ダイアログを非表示にしたいと考えています。私は次の方法を試しました...

ScriptManager.RegisterStartupScript(Me, Me.GetType, "HidePopup", "HidePopup();", True)

Page.ClientScript.RegisterStartupScript(Me.GetType(), "HidePopup", "HidePopup();")

最初のボタンが必要だと思います (私は AjaxControlToolkit とこの特定のボタンを使用して<div>おり、更新パネルにあります) が、どちらもダイアログ ボックスを隠していないようです。エラーが発生しないので、ここでちょっと迷っています。何か案は?さらに情報が必要ですか? 前もって感謝します。

編集:だから私の問題は実際にはjavascriptが起動していないということではありません.私alert(message)は自分のHidePopup()関数にオフになっているので、私の問題は本当にこの行にあるようです...

$("#popup").dialog("close");

divは次のように定義されています...

<div id="popup" style="display:none;"></div>

誰かがそれで何か問題があると思いますか?

4

1 に答える 1

0

皆さんのおかげで、私は問題を理解しました。他の誰かがここでつまずいた場合...

私が使用しているのでUpdatePanel、使用する必要がScriptManager.RegisterStartupScript(<UpdatePanelID>, <UpdatePanelID>.GetType(), "HidePopup", "HidePopup();")ありました-関数呼び出しで UpdatePanel の名前を使用するための @VeselinVasilev の回答に注意してください。

ただし、最も重要なことは、実際にポップアップを開始するメソッドを変更する必要があったことです。DOM がダイアログへの参照を失っていたようです。グローバル変数を作成し、作成時にダイアログに割り当てました。それを使用して、ダイアログを表示/非表示にできます。

var popupDialog;

function ShowPopup(message) {
    $("#popup").html(message);
    popupDialog = $("#popup").dialog({
                    title: "Working",
                    modal: true,
                    dialogClass: "no-close"
    });
};
function HidePopup() {
    popupDialog.dialog("close");
};

誰かがこれに問題を見つけたり、他に質問がある場合は、間違いなく私に知らせてください.

于 2015-02-05T21:21:48.880 に答える