2012-03-06 12 views
0

私は設計時にリテラルが置かれたascxコントロールを持っています。 実行時に、Page_Loadで、リテラルのtextプロパティをデータベースから取得するjavascriptに設定しました。 しかし、javascriptコードは評価されていないようです。スクリプトを評価するためには何をする必要がありますか?ascxコントロールで評価されない動的に追加されたjavascript

た.ascxで

:ascx.csで

<asp:Literal id="litTags" runat="server"></asp:Literal> 

protected void Page_Load(object sender, EventArgs e) 
    { 
     //Set literal's text to the script 
     litTags.Text = "Javascript tag and script from database"; 
    } 

答えて

1

あなたはそれが適切なタグ内のコードをJSラップしていることを確認してください:

<script type="text/javascript">' 
// js code here 
</script> 
+0

コードが適切に包まれています。 – laconicdev

0

ClientScriptでこれを行う必要があります。 RegisterClientScriptメソッド。

マスターページまたは親ページにScriptManagerを追加します。

Page.ClientScript.RegisterClientScriptBlock(;、真this.GetType()、 "スクリプト名"、 "VAR変数= '" + dbVar + "'");:

そしてthiseコード(http://msdn.microsoft.com/en-us/library/bahh2fef.aspx参照)を使用し

または、などの場合は起動スクリプト(参照:http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

ClientScript.RegisterStartupScript(this.GetType()、 "スクリプト名"、 "VAR変数= '" + dbVar + "';"、真);

このようにリテラルコントロールは必要ありません。

0

スクリプトの前にロードされていないDOMの一部を操作しようとするなど、Javascriptにエラーがある必要があります。予想通り

以下が評価されます。

protected void Page_Load(object sender, EventArgs e) { 

     StringBuilder sb = new StringBuilder(); 

     sb.Append("<script type='text/javascript'>" + Environment.NewLine); 
     sb.Append("alert('hello world');" + Environment.NewLine); 
     sb.Append("</script>" + Environment.NewLine); 

     litTags.Text = sb.ToString(); 

} 
関連する問題