【问题标题】:Same ID error in TreeListTreeList 中的相同 ID 错误
【发布时间】:2012-08-31 06:41:20
【问题描述】:

我将 DevExpress 的 TreeList 与 C# 一起使用。我有这样的场景,我有 2 张桌子。 Table # 1 包含目录信息,Table # 2 包含文件信息。名为Parent 的列是放置目录/文件的目录。

Folder Table
ID  Parent  Name
1     1     Folder1
2     1     Folder2
3     2     Folder3

File Table
ID   Parent   Name
1      1      file1.txt
2      2      file2.txt
3      2      file3.txt

我将两个表都存储在dt

DataTable dt
ID  Parent  Name
1      1    Folder1
2      1    Folder2
3      2    Folder3
1      1    file1.txt
2      2    file2.txt
3      2    file3.txt

做这样的事情

treelist.datasource = dt;
treelist.parentfieldname = "Parent";

我想在treelist 中显示文件和文件夹。这不起作用,因为我具有相同的文件和文件夹 ID。任何人都可以提出任何简单的解决方案吗?

【问题讨论】:

    标签: c# winforms devexpress treelist


    【解决方案1】:

    我相信,在这种情况下,您应该实现dynamical data loading,而不是使用bound mode 来手动解析文件/文件夹关系。

    相关链接:
    How to: Load Data Dynamically via Events
    Tree Generation Algorithm in the XtraTreeList

    【讨论】:

    • Tree Generation Algorithm in the XtraTreeList 适用于单个表,但不适用于多个表,因为您的 id 相同。我想我现在应该手动创建树列表,不应该把它作为数据源
    • @AndroidLearner:我在上面提到过同样的想法:绑定模式在这种情况下不起作用,因为这是“生成算法”特定的,因此您应该使用“动态加载”
    • 我必须从表中加载数据,而不是从目录中。我在树中加载的不是文件和文件夹,我只提到了这个场景,因为它很容易理解。
    • @AndroidLearner:“动态加载”的主要思想是——你可以通过特殊事件从任何表中提供任何数据。该示例使用文件进行演示。您可以针对您的数据表调整此示例。
    【解决方案2】:

    我找到了一个快速简便的解决方案,我在dt 中添加了列

    Folder Table
    ID    Parent  Name
    1       1     Folder1
    2       1     Folder2
    3       2     Folder3
    
    File Table
    ID    Parent   Name
    4       1      file1.txt
    5       2      file2.txt
    6       2      file3.txt
    

    合并dt中的两个表

    DataTable
    ID    OrigID   Parent  Name
    1        1       1     Folder1
    2        2       1     Folder2
    3        3       2     Folder3
    4        1       1     file1.txt
    5        2       2     file2.txt
    6        3       2     file3.txt
    

    写了同样的以下几行

    treelist.datasource = dt;
    treelist.parentfieldname = "Parent";
    

    问题解决了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多