2013-04-08 56 views
0

我在UpdatePanel中有一个中继器。在Repeater项目中,我有几个文本框。我也有“添加新的”按钮来动态添加新项目到中继器。问题是每次按“添加新”时,所有用户输入都将被删除。如何更新转发器并保留用户输入?更新updatepanel中的中继器时存储用户输入

+0

你如何存储已经添加到中继器的内容?它的数据源是什么? – 2013-04-08 20:54:01

+0

你在做任何'PostBack或IsPostBack'检查你的代码..?更新面板应该'部分回发'你可以发布一些相关的代码..? – MethodMan 2013-04-08 20:54:36

回答

0

每当发生Postback时,Repeater控件就会失去其状态。您可能需要在Postback上执行以下快速步骤。

  1. 将中继器数据转换为代码隐藏中某种形式的数据数组(DA)。
  2. 将空元素添加到DA。
  3. 将DA绑定回中继器控制。
+1

启用'ViewState'(默认)后,转发器将在回发期间保留其状态。所以这一切都取决于数据源以及何时数据绑定中继器。只有当'!IsPostBack'或添加新项目时才应该完成。 – 2013-04-08 21:08:38

+0

我的问题是,当我按下“添加新的”我重新绑定整个数据源,这会导致所有值重置为其原始状态。所以问题是如何填充从HTML返回到DataSource的变化?我应该写一个方法来手动从转发器中的每个字段提取值并更新我的对象吗?或者有一种更简单的内置方式来将内存中的对象与中继器HTML进行同步。 – andr111 2013-04-08 22:48:21