首页 > 代码库 > Build Tree View Structure for SharePoint List Data
Build Tree View Structure for SharePoint List Data
此文参考自->原文链接
版权归原作者所有,我只是进行一下大致的翻译
应坛友要求,帮助验证一下功能。
SharePoint列表数据的树视图结构
1. 创建一个自定义列表,名字就还叫“CategoryDetails”这个吧,我喜欢用规范的英语。
2. 创建两个字段“Category Name”和“Parent Category”,在这里实际上就是ID和ParentID的概念,一个树,自然要有这种层级结构。
第一个字段为文本类型,类似PK的概念,必填且唯一
第二个字段为查阅项,自连接,如上所述。
字段创建完之后我们做一些测试的数据。
4. 部署WebPart解决方案,稍后附上树控件后台代码,原网站上有下载链接,直接下载下来,指定Site URL,修改后部署即可。
在页面上添加该WebPart,显示树状视图
坛友说的不好用实际上是因为字段的名称导致的,在创建字段的时候有空格,那么在用Query查询的时候,需要把空格替换为_x0020_。
后台代码如下
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Microsoft.SharePoint; using System.Text; using System.Collections.Generic; using System.Web; namespace TreeView.TreeStructure { public partial class TreeStructureUserControl : UserControl { public const string DYNAMIC_CAML_QUERY = "<Where><IsNull><FieldRef Name=‘{0}‘ /></IsNull></Where>"; public const string DYNAMIC_CAML_QUERY_GET_CHILD_NODE = "<Where><Eq><FieldRef Name=‘{0}‘ /><Value Type=‘LookupMulti‘>{1}</Value></Eq></Where>"; protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { BuildTree(); } } protected void BuildTree() { SPList TasksList; SPQuery objSPQuery; StringBuilder Query = new StringBuilder(); SPListItemCollection objItems; string DisplayColumn = string.Empty; string Title = string.Empty; string[] valueArray = null; treeViewCategories.Nodes.Clear(); try { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) { TasksList = SPContext.Current.Web.Lists["CategoryDetails"]; if (TasksList != null) { objSPQuery = new SPQuery(); Query.Append(String.Format(DYNAMIC_CAML_QUERY, "Parent_x0020_Category")); objSPQuery.Query = Query.ToString(); objItems = TasksList.GetItems(objSPQuery); if (objItems != null && objItems.Count > 0) { foreach (SPListItem objItem in objItems) { DisplayColumn = Convert.ToString(objItem["Category_x0020_Name"]); Title = Convert.ToString(objItem["Category_x0020_Name"]); CreateTree(Title, valueArray, null, DisplayColumn, objItem["ID"].ToString()); } } } } } } catch (Exception ex) { throw ex; } } private void CreateTree(string RootNode, string[] valueArray, List<SPListItem> objNodeCollection, string DisplayValue, string KeyValue) { string objExpandValue = http://www.mamicode.com/string.Empty;>That‘s all, thanks.
Build Tree View Structure for SharePoint List Data
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。