asp.net中的动态Javascript

rob*_*ert 5 .net javascript c# asp.net registerstartupscript

好.我面临的问题是我有自己的自定义控件,我做一个查询,获取记录,并根据数据动态添加HTML控件到页面.

现在有添加一些动态JavaScript的问题

我是在文字控件的帮助下完成的.

<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力

<script language="javascript" type="text/javascript">
// <![CDATA[
    Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
    $(WireEvents_<%=this.ID%>); // handle page load wiring

    function WireEvents_<%=this.ID%>() {
        <asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
    }

// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)

我从代码后面动态添加文字文本.

但是,将控件放在updatepanel中时,回发不会更新脚本.

编辑:Sys.Application.add_load使用updatepanel重新编写必要的功能.问题是需要代替文字的脚本在更新面板中时不会更新.

我已经尝试过ClientScript.RegisterStartupScript,但它与文字控制技巧具有相同的效果.有帮助吗?

---------------------------已解决(tnx到Pranay Rana)---------------- ------------------

摆脱了ascx方面的文字.以及Sys.Application.add_load

现在它只在后面的代码中.让我失望的是JQuery的事情.

this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
                                "$(WireEvents_" + this.ID + ");" + 
                                "function WireEvents_" + this.ID + "(){"+
                                "    alert('stuff');");

this.strBuilderJS.Append(       "}</script>");
Run Code Online (Sandbox Code Playgroud)

然后

ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
Run Code Online (Sandbox Code Playgroud)

Pra*_*ana 4

使用ScriptManager.RegisterStartupScript()注册您的脚本...可以解决问题...

检查此解决您的问题:在异步回发期间使用 RegisterStartupScript 以编程方式添加 JavaScript