嗯。我面临的问题是我有自己的自定义控件,我执行查询、获取记录并根据数据动态地将 html 控件添加到页面。
现在有添加一些动态javascript的问题
我在文字控件的帮助下完成了这项工作。
<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
这就像一个魅力
<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>
我从后面的代码中动态添加文字文本。
但是,当将控件放在更新面板中时,回发不会更新脚本。
编辑:Sys.Application.add_load
使用更新面板重新连接必要的功能。问题是需要代替文字的脚本在更新面板中不会更新。
我已经尝试过 ClientScript.RegisterStartupScript,但它的效果与文字控制技巧相同。有帮助吗?
----------------------------已解决(发送至 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>");
然后
ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
最佳答案
利用 ScriptManager.RegisterStartupScript()
注册您的脚本...可能会解决问题...
检查此解决您的问题:Add JavaScript programmatically using RegisterStartupScript during an Asynchronous postback
关于c# - asp.net 中的动态 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211183/