动态添加的javascript未在ascx控件中计算

动态添加的javascript未在ascx控件中计算,javascript,asp.net,dynamic-usercontrols,Javascript,Asp.net,Dynamic Usercontrols,我有一个ascx控件,它在设计时放置了一个文本。 在运行时,在Page_Load中,我将文本的text属性设置为从数据库检索的javascript。 但是,似乎没有对javascript代码进行评估。我需要做什么来评估脚本 在.ascx中: <asp:Literal id="litTags" runat="server"></asp:Literal> 确保将js代码包装在正确的标记中: <script type="text/javascript">' //

我有一个ascx控件,它在设计时放置了一个文本。 在运行时,在Page_Load中,我将文本的text属性设置为从数据库检索的javascript。 但是,似乎没有对javascript代码进行评估。我需要做什么来评估脚本

在.ascx中:

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

确保将js代码包装在正确的标记中:

<script type="text/javascript">'
// js code here
</script>
'
//js代码在这里

您需要使用ClientScript.RegisterClientScriptMethod来完成此操作

在母版页或父页上添加ScriptManager

然后使用此代码(参考:)

Page.ClientScript.RegisterClientScriptBlock(this.GetType(),“scriptname”,“var变量='”+“dbVar+”;”,True)

或者,如果作为启动脚本(参考:)

RegisterStartupScript(this.GetType(),“scriptname”,“var变量=”,+dbVar+“;”,True)


您不需要这样的文本控件。

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

}
受保护的无效页面加载(对象发送方,事件参数e){
StringBuilder sb=新的StringBuilder();
sb.Append(“+Environment.NewLine”);
sb.Append(“警报('hello world');“+Environment.NewLine”);
sb.Append(“+Environment.NewLine”);
litTags.Text=sb.ToString();
}
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();

}