为什么数据绑定不记得旧值?

时间:2010-10-03 15:01:28

标签: asp.net data-binding objectdatasource

我的页面中有一个经典的ObjectDataSource和一个ListView。列表视图只显示一些数据,当切换到编辑模板时,它允许用户更改值。我希望用户只编辑一些值 - 所以我只在编辑模板中绑定这些值。

问题是其他值突然变为空或0.我试图一次绑定所有值并且它工作正常,但我无法理解为什么旧/原始值只是消失。有没有办法如何绑定旧值?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

问题是,回发中只有包含在服务器往返中的数据才可用。这包括绑定到BoundFields,TemplateFields或者如果Propertynyn包含在DataKey(或DataKeyNames,现在还不知道)中的所有内容。

修复此问题并将开销降至最低的最佳方法是将主键添加到DataKeyNames集合中。这使您可以访问包含唯一标识符的自定义对象以及刚刚更改的所有属性。

在ODS的更新方法(在您的自定义类中)中,您现在需要通过其唯一标识符检索旧对象,手动分配新值并将对象保存回数据库