在 UpdatePanel 中的 ASP.NET AJAX 回发期间更新客户端 JavaScript 数组变量的最简单方法?
-
01-07-2019 - |
题
如果我想在全页面回发期间将全局范围的数组变量注入页面的客户端 JavaScript,我可以使用:
this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");
在页面上声明并填充客户端 JavaScript 数组。又好又简单。
但我想从 UpdatePanel 的异步回发中执行相同的操作。
到目前为止我能想到的最接近的是创建一个仅包含 var 声明的 .js 文件,在异步回发期间更新该文件,然后使用 ScriptManagerProxy.Scripts.Add
将 .js 文件添加到页面的全局范围。
有没有更简单的?r iz 做错了吗?
解决方案
您还可以更新更新面板内的隐藏标签,该标签允许您写出您喜欢的任何 JavaScript。我建议使用网络服务甚至页面方法来获取您需要的数据,而不是使用更新面板。
例子:myLabel.Text = "....";...将您的逻辑放入其中,或者您可以将 [WebMethod] 添加到任何公共静态页面方法并直接返回数据。
其他提示
使用静态方法 System.Web.UI.ScriptManager.AddStartupScript()
该脚本将在所有完整和部分回发时运行。
萨姆是对的。ScriptManager.RegisterStartupScript 是该函数的正确名称。它将在所有完整和部分页面更新时运行。
不隶属于 StackOverflow