当我需要收回在回发后使用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).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。