我想填充一个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