在updatepanel刷新上从asp.net codebehind更改javascript变量
本文关键字:codebehind 更改 javascript 变量 net asp updatepanel 刷新 | 更新日期: 2023-09-27 18:12:09
我有一些JSON生成在我的asp.net后台代码。最初,这些数据存储在Page属性字符串中,并在javascript中像这样访问:
var myjson = '<%= PageProperty %>'
然而,在updatepanel的回发时,属性被更新,但先前的值保留在javascript变量中。
我最终做的是将json分配给隐藏的asp:TextBox
的Text
属性,然后在javascript中检索,如下所示:
ASP标记:
<asp:TextBox ID="jsonData" runat="server" Text="" style="display: none" />
var myjson = $('#<%= jsonData.ClientID %>').val();
这看起来很乱(注意:为了简单起见,删除了15个这样的字段)。
是否有更好的方法来做到这一点(没有15 ajax调用)?
为什么更新后的页面属性在回发后没有被拾取?
您可以使用它直接从后面的代码注入JavaScript脚本:
在UpdatePanel中从用户控件注入javascript
ASP。. NET将javascript注入到嵌套在更新面板中的用户控件
注入脚本的代码应该更新变量。
你可以尝试一个肮脏的技巧:添加一个<script>
标签的代码来更新客户端的javascript变量。把它放在更新面板HTML的底部。当HTML在浏览器中呈现时,脚本将运行。
如果您坚持隐藏文件技巧,您可以将15个值序列化为JSON,并存储序列化的值。然后可以使用javascript在客户端对JSON进行反序列化。在服务器端使用JSON.NET。在客户端使用javascript函数JSON.parse("serialized values")
.