您的位置:首页 > Web前端 > JavaScript

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; } 

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: