我一直希望能尽快公布 CodePlex 提供了很好的集成的大量的相互交谈通过发掘下盖的 SharePoint 站点提供商/消费者连接的 web 部件的项目。 (这当然已做过, 但这是一个学习项目一样什么都重要). 这是为了将取代的 SharePoint 的 windows 资源管理器视图 2010 文档库.
代码有平常的递归调用 SPWeb 和 Splist 从给定的起始点。 建立一个 XML 字符串,看上去像这样的对象,不会,遍历:
<sitecollection url =’http://demo2010a:9090′>
<网站
标题 =' 你好世界沙盒 '
模板 =' 的团队能够快速组织网站, 作者, 和共享信息, 废话废话废话 '><列表
标题 ='BCC_Health_Services_FAQs’
模板 ='CustomList’
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
</列表><列表
标题 = 'BCC_Notifications'
模板 = 'CustomList'
listid =’http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877 c 41 c 0-9063-b9612be80d5e’>
</列表></网站>
</sitecollection>
我期望干净了之前所有, XML 是说和做.
我想最终获得信息,并到 Treeview 控件。 不完全地球次多么重大的东西.
我在这里拿的挑战是要连接到 XML 数据源控件,而不是手动建立我的 treenodes,因为我遍历树的树视图。 部分原因是因为我故意制作的东西对自己更难做到 (这毕竟是一个学习项目) 部分原因是因为我有这种模糊的概念,建立树节点,如我遍历树长远来说并不是一个好主意.
这种方法的问题在于 Treeview 控件不知道上有趣的节点,如"列表"或"web"好的属性,因此它在默认情况下显示此输出:
这不是很有用的。 这是哪里的 TreeNodeBinding 类帮助。 我可以使用此告诉 Treeview 控件,它应如何解释 XML。 下面是一个示例:
tnb = 新 TreeNodeBinding();
tnb。DataMember ="名单"; // 这是一个网站的 xml 中的标签.
tnb。TargetField ="listid";
tnb。ValueField ="title";
tnb。ToolTipField ="模板";
此绑定告诉树视图,当它发现 <列表> 在 XML 中的节点, 应用 TargetField 的绑定, ValueField 和 ToolTipField。 在可能的应用程序, 这些地图,如下所示:
- TargetField: 当某人单击节点的值, 这是你会为 SelectedNode.Value。 这并不是与混淆 … …
- ValueField: 这就是你所想的树视图以显示给用户.
- ToolTipField: 从您希望作为工具提示的 XML 值.
添加到树视图中的数据绑定,并且 TreeNodebinding 获取输出像这样:
我更对所有这一切为继续实施项目,并最终把这 Codeplex.
</结束>
跟我在 Twitter 上 http://www.twitter.com/pagalvin
pingback的: 提到 ASP.NET Treeview 控件 «Paul 尔文 SharePoint Space 中进行 TreeNodeBinding 工作用的推文 -- Topsy.com
嗨保罗,
我已经查过了只是我自己. 它担任你描述,即使不得到您的站点的信息 (真可惜 :-)).
我很感兴趣的一点是, 我试图使结构变得懒惰加载与 PopulateOnDemand 属性. 否则 treeview 加载完整的结构中,以避免整个. PopulateOnDemand 似乎没有任何影响此属性.
树视图也没有保存任何展开/折叠状态的信息.
你解决这些问题吗?
问候
霍尔格 ·
我知道您发布此注释很久以前. 道歉并不响应. 我假设你长久以来得到您的解决方案 :).