编程语言
首页 > 编程语言> > NET格式的客户端JavaScript ViewState更新

NET格式的客户端JavaScript ViewState更新

作者:互联网

当我需要收回在回发后使用JavaScript添加了客户端的html控件时,我偶然发现了这个问题(由于服务器端验证-这不是可选的).

请告诉我是否要实现此目标的方法是cr * p,并且有更好的方法可以做到这一点.

基本上,我正在做的是在用户单击“添加”时在页面上最多克隆文本框控件10次,并将每个texbox中输入的值存储在隐藏字段中以从后面的代码中读取.这很好,但是,如果在回发后服务器端验证未通过,则所有动态添加(克隆的)texbox都将消失,因为ViewState一无所知.

我正在考虑2种可能的解决方案,这两种解决方案都显得有些笨拙:

>使用隐藏字段中的存储值在文档onload()上重建所有克隆的文本框
>将表单包装在ajax更新面板中,并将克隆的texbox放置在表单外部,这样就不会在回发时刷新屏幕的这一部分

现在,是否可以通过某种方式“更新” ViewState,使其了解我使用客户端脚本添加的所有html控件?还有更好的主意吗?我想使用客户端脚本来实现此目的,因此,不考虑在服务器端克隆文本框.

解决方法:

您不能在客户端上修改ViewState.如果这样做,您将使viewstate无效并在回发时收到错误消息.

在您的情况下,您可能要考虑使用javascript和jQuery在文档就绪事件中使用存储在隐藏字段中的值来呈现文本框.我建议您看一下jQuery模板,特别是如果您可以将数据以JSON格式存储在隐藏字段中(http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data -将链接和全球化接受为官方的jquery-plugins.aspx).

标签:ajax,client-side,viewstate,asp-net,javascript
来源: https://codeday.me/bug/20191023/1913756.html