2

ページに警告ボックスを表示していますが、その後、ページが壊れています。

Response.Write("<script>alert('Selected items are removed successfully')</script>");

それを修正する方法は?

4

3 に答える 3

7

これは、ASP.NET 上のクライアントに JavaScript コードを送信する方法ではありません。

あなたが使用することができますPage.ClientScript.RegisterStartupScript

 Page.ClientScript.RegisterStartupScript(
   this, 
   GetType(), 
   "ALERT", 
   "alert('Selected items are removed successfully')", 
   true);

この場合、使用することもできますPage.ClientScript.RegisterClientScriptBlock

 Page.ClientScript.RegisterClientScriptBlock(
   this, 
   GetType(), 
   "ALERT", 
   "alert('Selected items are removed successfully')", 
   true);

と の違いを理解するにはRegisterStartupScriptRegisterClientScriptBlockここで確認できます

RegisterStartupScript と RegisterClientScriptBlock の違いは?

また、それらが常に互換性があるとは限らない理由も理解できます。

于 2012-06-12T15:03:01.393 に答える
2

Response.Write は、ページがレンダリングされる前に、出力ストリームに直接書き込みます。結果のページ コードを見ると、HTML の前に出力が表示されます。これにより、特にページの状態が壊れます。

最も可能性が高いのは、RegisterStartupScript メソッドのようなもので、ページの最後に適切なスクリプト ブロックを書き出すことです。

ドキュメントへのリンク: http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerstartupscript.aspx

このメソッドのコード例については、@Claudio Redi の投稿を参照してください。

于 2012-06-12T14:59:25.100 に答える
1

Web フォームのポストバック中に JavaScript コードをトリガーする構文は次のとおりです。

    Dim scVal As String
    scVal = "<script type='text/javascript'>"
    scVal = scVal & " alert('Selected items are removed successfully');</script>"
    ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "temp", scVal, False)
于 2012-06-12T15:04:40.280 に答える