在UpdatePanel中的ASP.NET AJAX回发期间更新客户端javascript数组变量的最简单方法?
时间:2020-03-06 14:22:38 来源:igfitidea点击:
如果我想在整页回发期间将全局范围内的数组变量注入到页面的客户端javascript中,可以使用:
this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");
在页面上声明并填充客户端javascript数组。漂亮又简单。
但是我想通过UpdatePanel的异步回发来做同样的事情。
到目前为止,我能想到的最接近的是创建一个仅包含var声明的.js文件,在异步回发期间更新该文件,然后使用ScriptManagerProxy.Scripts.Add
将.js文件添加到页面的全局范围。
有没有更简单的方法? iz做错了吗?
解决方案
我们还可以在更新面板中更新一个隐藏标签,该标签允许我们编写所需的任何JavaScript。我建议尽管使用Web服务甚至页面方法来获取所需的数据,而不要使用更新面板。
示例:myLabel.Text =" ...."; ...将逻辑放在这里,或者我们可以将[WebMethod]添加到任何公共静态页面方法中并直接返回数据。
使用静态方法System.Web.UI.ScriptManager.AddStartupScript()
该脚本将在所有完整和部分回发中运行。
山姆是正确的。
ScriptManager.RegisterStartupScript是函数的正确名称。
它将在所有完整和部分页面更新上运行。