【问题标题】:Why data binding does not remember the old values?为什么数据绑定不记得旧值?
【发布时间】:2010-10-03 15:01:28
【问题描述】:

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

问题是其他值突然变成空值或 0。我尝试一次绑定所有值并且它工作正常,但我不明白为什么旧/原始值会消失。有什么方法可以绑定旧值吗?

感谢您的帮助。

【问题讨论】:

    标签: asp.net data-binding objectdatasource


    【解决方案1】:

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

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

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

    【讨论】:

    • 我已将 DataKeyNames 设置为我的主键,它工作正常...感谢您的帮助。
    • 我第一次遇到这种情况时花了我几个小时。我很高兴能帮助你。我希望它为您节省了一些麻烦;)
    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多