我想填充一個Treeview。最佳實踐TreeView從不同種類的對象中填充
這是我在DB:
表:盒 BoxID BoxName
桌上的書: 的BookID BOOKNAME BoxID(FK Box.BoxID)
表章: ChapterID ChapterName BookID(fk Book.BookID)
正如您所知,樹視圖由treenode對象組成。 treenode對象具有文本屬性和標籤屬性。 「text」屬性是它在此節點的屏幕上顯示的文本,「tag」是一個「隱藏」值(通常用於識別節點)
所以在我的情況下,以ID結尾的字段將用於「tag」屬性中,以Name結尾的字段將用於「text」屬性
示例: 對於書籍;我將使用「標記」屬性的BookID字段和「文本」屬性的BookName字段
注意:我使用dbml,因此我有一個Book對象,Box對象和Chapter對象,並使用linq來獲取它們從數據庫。
所以我的問題是,建立這棵樹的最佳做法是什麼?
我有一個解決方案,但它真的很醜,因爲它看起來像我複製代碼。 問題是,我需要爲文本和標籤屬性提取的值由db中的differents字段名稱標識
因此對於書籍級別,我需要獲取BookID字段以填充我的標籤屬性節點;對於框級別,我需要獲取BoxID字段來填充標記屬性,....
我該如何製作一種通用的方式來做到這一點?
我希望我自己很清楚,請不要猶豫,問我的問題:)提前
THX
我得到一個linq(dbml)請求框的列表。 我收到一個清單 Treenode tnBox = null; Treenode tnBook = null; foreach(MyListofBox中的Box b) { tnBox = new TreeNode(); tnBox.tag = b.BoxID; tnBox.text = b.BoxName; 列表 MyListofBook = getMyListofBookByBoxID(b.BoxID) 的foreach(在MyListofBook簿BOO) { tnBook =新樹節點(); tnBook .tag = boo.BookID; tnBook .text = boo.BookName; tnBox.nodes.add(tnBook); } mytreeview.nodes.add(tnBox); } } –
GillouX
2009-04-19 11:42:34