1

ボタンのクリックイベントには次のコードがあります。

protected void Button1_Click(object sender, EventArgs e)
{
    string message = "";
    //Series of codes to change the message variable

    Page.ClientScript.RegisterStartupScript(GetType(), "", "ShowMessage(" + message +");", true);
    }



<script type="text/javascript">
    function ShowMessage(msg){
        alert(msg);
    }
</script>

これはメッセージを表示しません。私の RegisterStartupScript が間違っているのでしょうか?

4

4 に答える 4

3

以下を試してください、

  1. スクリプトに有効な名前を付ける必要があります。http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

    起動スクリプトは、キーとタイプによって一意に識別されます。同じキーとタイプのスクリプトは重複と見なされます。特定のタイプとキーのペアを持つ 1 つのスクリプトのみをページに登録できます。既に登録されているスクリプトを登録しようとしても、スクリプトの複製は作成されません。

  2. ShowMessageページで定義する必要があります

  3. パラメータを文字列として渡す必要があります。ShowMessage('" + message +"');

  4. 最終的なコードは次のようになります

Page.ClientScript.RegisterStartupScript(GetType(), "myAlertScript", "ShowMessage('" + message +"');", true);

アップデート


ページに更新パネルがある場合は、代わりに次のコードを試してください。

ScriptManager.RegisterClientScriptBlock(this,typeof(Page),"myAlertScript","ShowMessage('" + message +"');", true);
于 2013-05-28T08:35:30.103 に答える
2

messageへの呼び出しで変数の周りに引用符がありません。ShowMessageこれを試してください:

Page.ClientScript.RegisterStartupScript(this.GetType(), "", "ShowMessage(\"" + message + "\");", true);
于 2013-05-28T08:34:58.427 に答える
0

メッセージがクライアントに配信されるかどうかをテストするには、クライアント側の問題を除外するネイティブ JavaScript 関数を呼び出すだけです。

Page.ClientScript.RegisterStartupScript(GetType(), "", "alert('here?');", true);

ブラウザーでページのソースを表示して、コードがクライアントに配信されているかどうかを確認することもできます。

于 2013-05-28T08:35:11.677 に答える
0

クリック ハンドラー (およびそれが呼び出すもの) の完了にコードを実行するには、ハンドラー中にタイムアウトを設定します。

function onClick() {
    window.setTimeout(functionToCall, 0);
}
于 2013-05-28T08:38:42.463 に答える