0

私はTreeListC#でDevExpressを使用しています。このようなシナリオがあり、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が同じであるため、これは機能しません。誰でも簡単な解決策を提案できますか?

4

2 に答える 2

1

すばやく簡単な解決策を見つけたので、列を追加しました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";

問題が解決しました!

于 2012-09-07T05:50:16.473 に答える
1

この場合、バインドモードを使用してファイル/フォルダーの関係を手動で解決する代わりに、動的データ読み込みを実装する必要があると思います。

関連リンク:方法: XtraTreeList の
イベント ツリー生成アルゴリズムを介してデータを動的にロードする

于 2012-09-07T04:38:25.897 に答える