2011-08-05 10 views
2

I page.clientScriptを使用して警告メッセージを表示する一般的な方法があります。しかし、後で私は更新パネルを追加しました。今度はこのコードがうまくいきません。だから私はそこに呼び出す必要がありますscriptmanager、しかし、私はそこにアクセス可能ないくつかのエラーメッセージが表示されます。 は以下common.csの私のShowMessage方法は、だから私は、更新パネルクラスファイルでScriptManagerを使用するには?

+1

は、あなたがそれを行うには、他の方法becuase私の答えの方法を使用することができる必要が名前空間を含めるようにしようと私のために働いて

var page = HttpContext.Current.CurrentHandler as Page; ScriptManager.RegisterStartupScript(page, page.GetType(), "alert", "alert('Success');window.location ='Home.aspx';", true); 

ファイル.csファイルでこれを試してみてください –

答えて

4

メイク使用のもとでこのメソッドを使用しない方法

private static void ShowMessage(Page currentPage, string message) 
     { 
      var sb = new StringBuilder(); 
      sb.Append("alert('"); 
      sb.Append(message); 
      sb.Append("');"); 
      currentPage.ClientScript.RegisterClientScriptBlock(typeof(Common), "showalert", sb.ToString(), true); 
     } 

ファイルです:ScriptManager.RegisterClientScriptBlock Method

ScriptManager.RegisterClientScriptBlock(
      this, 
      typeof(Page), 
      "TScript", 
      script, 
      true); 
ここ
+0

このメソッドをクラスファイルで使用することができません....その他のオプションは、コード内のすべての場所で使用されます –

+2

これは私のために働く...あなたはSystem.Web.UI.ScriptManagerクラスを見ることができませんインテリセンスで?プロジェクトのSystem.Web.Extensionsへの参照はありますか? –

4
const string scriptString = "<script type='text/javascript'> alert('message');</script>"; 
       ClientScriptManager script = Page.ClientScript; 
       script.RegisterClientScriptBlock(GetType(), "randomName", scriptString); 
1

の方法ですIしました:

public partial class JQuery 
{ 

    private Page page;  
    public JQuery(Page pagina) { 
     page = pagina; 
    } 

    public void Alert(string Title, string Message) 
    { 

     Message = Message.Replace("\n", "<br>"); 

     string command = String.Format("myCustomDialog('{0}','{1}')", Title, Message); 
     ScriptManager.RegisterClientScriptBlock(page, this.GetType(), "", command, true); 
    } 

} 

そして、あなたはこのように使用することができます:クラスファイルで使用するために

JQuery jquery = new JQuery(this.Page); 
jQuery.Alert("Title", "Look, a jQuery dialog!"); 
2

public static void SendAlert(string sMessage) 
{ 
    sMessage = "alert('" + sMessage.Replace("'", @"\'").Replace("\n", @"\n") + "');"; 

    if (HttpContext.Current.CurrentHandler is Page) 
    { 
     Page p = (Page)HttpContext.Current.CurrentHandler; 

     if (ScriptManager.GetCurrent(p) != null) 
     { 
      ScriptManager.RegisterStartupScript(p, typeof(Page), "Message", sMessage, true); 
     } 
     else 
     { 
      p.ClientScript.RegisterStartupScript(typeof(Page), "Message", sMessage, true); 
     } 
    } 
} 

これは他の可能なハンドラを含むように拡張することができますが、私が解決方法を一瞬これがあります問題。

1

^^

関連する問題