3

如果我想在整个页面回发期间将全局范围的数组变量注入页面的客户端 javascript,我可以使用:

this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");

在页面上声明和填充客户端 javascript 数组。很好很简单。

但我想从 UpdatePanel 的异步回发中做同样的事情。

到目前为止,我能想到的最接近的方法是创建一个仅包含 var 声明的 .js 文件,在异步回发期间更新文件,然后使用 aScriptManagerProxy.Scripts.Add将 .js 文件添加到页面的全局范围。

有没有更简单的?你做错了吗?

4

3 回答 3

3

使用静态方法 System.Web.UI.ScriptManager.AddStartupScript()

该脚本将在所有完整和部分回发上运行。

于 2008-09-19T00:26:09.590 回答
2

山姆是对的。ScriptManager.RegisterStartupScript 是函数的正确名称。它将在所有完整和部分页面更新上运行。

于 2010-04-26T12:00:59.393 回答
0

您还可以更新更新面板内的隐藏标签,该标签允许您写出您喜欢的任何 javascript。我建议尽管使用 Web 服务甚至页面方法来获取您需要的数据,而不是使用更新面板。

示例:myLabel.Text = "...."; ... 将您的逻辑放入其中,或者您可以将 [WebMethod] 添加到任何公共静态页面方法并直接返回数据。

于 2008-09-18T18:07:09.797 回答