2009-11-12 96 views
1

我在页面上有一个gridview控件。当第一次加载页面时,我将数据绑定到网格。但在客户端,用户可以复制一行并在网格中添加以下内容。因此,我使用jquery $(CpRow).clone(true).insertAfter(CpRow)来做到这一点。但是,当页面回发时,由于视图状态,客户端添加的行会丢失。使用javascript更新动态创建控件的视图状态

如何更新GridView的视图状态,使该行没有进一步的回传丢失。

在此先感谢...

回答

2

长期和短期的是,有没有简单的方法来做到这一点。如果控件集合(通过Request.Form)与视图状态不匹配,我甚至能够回发而不会收到无效的viewstate错误,这让我感到很惊讶。

如果您未获取无效的视图状态问题,则可以将已克隆的行的ID存储在隐藏字段中,并在Postback上对这些ID进行一些处理以重新添加克隆的行服务器。这将确保克隆的行将其值存储在viewstate中正确。

希望这有助于道歉,如果这是一个模糊的答案 - 就像我说的,有关于这个问题没有简单的解决方案。

1

必须在服务器端创建视图状态。要改变网格并让它在帖子后面生存,你必须通过某种类型的asp.net postback/asp.net ajax post来改变网格。

+0

还是有什么办法将HTML行字符串转换为网格视图行控制? – BABA 2009-11-12 13:48:14

+0

不是没有做回发和添加服务器端的行。 – kemiller2002 2009-11-12 14:26:30

0

问题是解决了,我用隐变量克隆的行存储在服务器上,一旦发生回传我正在重新绑定新的行格补充说。

谢谢4回答..

+0

很高兴帮助,欢呼。 – 2009-11-17 12:52:18

+0

但在这种情况下,按钮点击可能位于gridview内部吗? – 2013-02-28 01:36:44