【问题标题】:DevExpress repository item lookup edit data displayDevExpress 存储库项查找编辑数据显示
【发布时间】:2013-08-05 13:01:53
【问题描述】:

我使用的是gridcontrol,上面有 3 列。

在其中一列中,我使用了存储库项查找编辑。当我使用 tableadapter update 方法更新网格的数据源时出现了我的问题,之后所有其他列都保留了正确的数据选择,但是在存储库的列上单元格是空的..但是数据存在,所以没有显示文本,但存在数据。

关于如何进行这项工作的任何想法?

【问题讨论】:

    标签: c# devexpress


    【解决方案1】:

    RepositoryItemLookupEdit 的问题是,如果新的数据集中不存在旧的选定值,DisplayValue 成员将不显示任何内容。所以你必须检查新加载的数据是否包含旧值EditValue ..

    【讨论】:

    • 我已经解决了。问题是在源数据库中,值字段是 nvarchar(9),而在我插入数据的目标数据源中是 nvarchar(20)。我相信当数据通过 tableadapter 引入时, value 成员中没有修剪,因此额外的 11 个字符没有任何内容,因此查找编辑无法在它们之间进行匹配。
    【解决方案2】:

    您需要确保已正确设置编辑器的 DataSource,以及如前所述的 DisplayMember 和 ValueMember 属性。 Display Member 将决定编辑器本身显示的内容,而 Value Member 将用于绑定。因此,您可以有一个值成员的(int)ID 和一个显示成员的(字符串)名称或描述。这里最重要的是正确设置和更新编辑器的 DataSource 属性。您可以在设计器中或在代码本身中完成此操作,方法是在表单加载或初始化时直接访问编辑器的 DataSource 属性并将其设置为域对象的集合。

    此外,您可以从您的域对象创建一个 BindingSource,您可以使用它来映射到数据源,或者(我建议)创建一个装饰您的域对象的视图模型。这使您可以根据需要按摩数据。在某些情况下,您可能希望在显示或绑定数据之前或之后进行一些验证或格式化。

    【讨论】:

      猜你喜欢
      • 2014-10-09
      • 2012-08-05
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      相关资源
      最近更新 更多