SharePoint 2013 树形导航菜单,读取指定文档库下的文件夹和文件(非JS部分)
2016-07-11 14:33
513 查看
SharePoint 2013 树形导航菜单,读取指定文档库下的文件夹和文件
上篇写到文件,因为实际需求是要获得文件。今天追加代码如下。
Html
<div> <asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"> </asp:TreeView> </div> <p> <input id="Text1" type="text" runat="server" /></p>
CS code
<pre name="code" class="csharp"> protected void dataBind(string folderName) { try { SPSite site = new SPSite(SPContext.Current.Site.ID); SPWeb spWeb = site.OpenWeb(); SPList spList = spWeb.Lists[folderName]; this.TreeView1.Nodes.Add(CreateNodeByList(spList)); spWeb.Dispose(); } catch (Exception ex) { throw new Exception(ex.Message + "; " + ex.Source); } } private TreeNode CreateNodeByList(SPList spList) { TreeNode node = new TreeNode(); node.Text = spList.Title; node.Value = spList.RootFolder.Url; foreach (SPFolder subFolder in spList.RootFolder.SubFolders) { if (subFolder.Name != "Forms") { node.ChildNodes.Add(CreateNodeByFolder(subFolder)); } } return node; } /// <summary> /// 递归; 遍历文件夹 /// </summary> /// <param name="spFolder"></param> /// <returns></returns> private TreeNode CreateNodeByFolder(SPFolder spFolder) { if (string.IsNullOrEmpty(LibraryName)) { LibraryName = "样式库"; } TreeNode node = new TreeNode(); node.Text = spFolder.Name; //单击链接导航 //node.NavigateUrl = SPContext.Current.Web.Lists["样式库"].DefaultViewUrl + "?RootFolder=" + spFolder.Url; //value 赋值 node.Value = SPContext.Current.Web.Lists["样式库"].DefaultViewUrl + "?RootFolder=" + spFolder.Url; node.ImageUrl = SPControl.GetContextWeb(Context).Url + "/_layouts/images/folder.gif"; //文件夹图标 foreach (SPFolder subFolder in spFolder.SubFolders) { node.ChildNodes.Add(CreateNodeByFolder(subFolder)); } //必须在循环外加载所有文件,不然获得不了文件。修改人:段传涛。 foreach (SPFile spFile in spFolder.Files) { node.ChildNodes.Add(CreateNodeByFile(spFile)); } return node; } /// <summary> /// 找到文件,创建节点给Treeview /// </summary> /// <param name="spFile">文件对象</param> /// <returns></returns> private TreeNode CreateNodeByFile(SPFile spFile) { TreeNode node = new TreeNode(); node.Text = spFile.Name; //单击链接导航 //node.NavigateUrl = SPContext.Current.Web.Lists["样式库"].DefaultViewUrl + "?RootFolder=" + spFolder.Url; //value 赋值 如果直接打开;String GetUrl = SPContext.Current.Web.Url +"/"+ spFile.Url; node.Value = SPContext.Current.Web.Lists["样式库"].DefaultViewUrl + "?RootFolder=" + spFile.Url; //文件图标,这里可以修改css,但是我们项目只有Excel 文件 node.ImageUrl = SPControl.GetContextWeb(Context).Url + "/_layouts/images/icxlsx.png"; return node; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { //根节点的,不要:修改者;段传涛 ffBody.ListItemFieldValue = ""; if (!(this.TreeView1.SelectedNode.ChildNodes.Count > 0)) { ffBody.ListItemFieldValue = TreeView1.SelectedNode.Value; } else { ffBody.ListItemFieldValue = "文件夹不能被赋值"; } }
//文件图标,这里可以修改css,但是我们项目只有Excel 文件 node.ImageUrl = SPControl.GetContextWeb(Context).Url + "/_layouts/images/icxlsx.png"; return node; }
相关文章推荐
- js笔记--错误处理与调试
- js正则表达式判断数字范围
- [JQ权威指南]全局函数getJSON()实现异步获取数据
- Javascript数组操作详细解答
- Js判断键盘按键
- Three.js(4)Light
- xStream完美转换XML、JSON
- JavaScript 数组详解以及常用方法
- JavaScript对象的理解 及 字面量对象与数组的关系
- JS函数调用的四种方法
- JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
- JavaScript类型判断instanceof与typeof对比
- JavaScript学习笔记十八:标准对象-Date
- JSP学习笔记(一)
- js 判断某个对象是不是dom对象
- JavaScript中,window.opener是什么?window.parent和window.opener有啥区别?
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
- 160630、五句话搞定JavaScript作用域
- JavaScript正则表达式详解(一)正则表达式入门
- JavaScript流程控制