2012-03-06 48 views
0

我有一個ascx控件,它在設計時有一個字面值。 在運行時,在Page_Load中,我將文字的文本屬性設置爲從數據庫檢索到的javascript。 但是,它似乎沒有評估JavaScript代碼。我需要做什麼才能評估腳本?在ascx控件中動態添加的javascript沒有評估

在的.ascx:

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

在ascx.cs:

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 2012-03-06 15:41:48

0

你需要用ClientScript來做到這一點。 RegisterClientScriptMethod。

在您的母版頁或父頁上添加一個ScriptManager。

然後使用thise代碼(參考:http://msdn.microsoft.com/en-us/library/bahh2fef.aspx

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), 「腳本名」, 「var變量。= '」 + dbVar + 「';」,TRUE);

,或者如果作爲啓動腳本(參考:http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

ClientScript.RegisterStartupScript(this.GetType(), 「腳本名」, 「var變量。= '」 + dbVar + 「';」,真);

你不需要這種文字控制。

0

您的Javascript中必須存在錯誤,例如試圖操作未在腳本之前加載的DOM的一部分。如預期

以下評估板:

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(); 

}