SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
来源:互联网 发布:微信h5足球源码 编辑:程序博客网 时间:2024/05/16 08:00
转:http://blog.csdn.net/miragesky2049/article/details/7204882
SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
1、实现效果如下:
点击各个节点进入相应的链接
2、测试列表:
3、创建解决方案及webpart,代码如下所示
- using System;
- using System.ComponentModel;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using Microsoft.SharePoint;
- using Microsoft.SharePoint.WebControls;
- //添加引用
- using System.Xml.Serialization;
- using System.Linq;
- using System.Data;
- namespace TestTreeView.TestTreeView
- {
- [ToolboxData("<{0}:WPToolPaneTest runat=server></{0}:TestTreeView>"), XmlRoot(Namespace = "TestTreeView")]////定义Toolbox data
- public class TestTreeView :System.Web.UI.WebControls.WebParts.WebPart
- {
- TreeView tvList = new TreeView();
- protected override void CreateChildControls()
- {
- tvList.NodeStyle.NodeSpacing = 5;//设置相邻节点的垂直间距
- tvList.ShowExpandCollapse = false;//不显示展开节点指示符,注:详细查看问题部分
- ListBind(0, 0);
- this.Controls.Add(tvList);
- }
- protected override void RenderContents(HtmlTextWriter writer)
- {
- writer.Write("<div style=' border:2px solid #CCCCCC; width:600px'><table cellpadding='0' cellspacing='0' width='100%'><tr><td style=' width:20%; vertical-align:top'><div style=' margin-top:10px;margin-left:5px'>");
- this.tvList.RenderControl(writer);
- writer.Write("</div></td></tr></table></div>");
- }
- /// <summary>
- /// 绑定TreeViewList列表数据
- /// </summary>
- /// <param name="ParentID">上一级导航ID</param>
- /// <param name="Level">所在树形的级别</param>
- private void ListBind(int ParentID, int Level)
- {
- SPSite site = SPContext.Current.Site;
- SPWeb web = SPContext.Current.Web;
- SPList list = web.Lists["TreeViewList"];
- var query = from SPListItem item in list.Items where item["ParentID"].ToString() == ParentID.ToString() && item["Level"].ToString() == Level.ToString() select item;
- foreach (SPListItem item in query)
- {
- TreeNode parentnode = new TreeNode();
- parentnode.Text = item["标题"].ToString();
- parentnode.Value = item["ID"].ToString();
- parentnode.ImageUrl = "/_layouts/images/folder.gif";
- SPFieldUrlValue url=new SPFieldUrlValue(item["Url"].ToString());
- parentnode.NavigateUrl = url.Url;
- NodesBind(parentnode,Int32.Parse(item["ID"].ToString()),Int32.Parse(item["Level"].ToString())+1);
- tvList.Nodes.Add(parentnode);
- }
- }
- /// <summary>
- /// 递归绑定子节点内容
- /// </summary>
- /// <param name="CurrentNode">当前节点</param>
- /// <param name="ParentID">上一级导航ID</param>
- /// <param name="Level">所在树形的级别</param>
- private void NodesBind(TreeNode CurrentNode, int ParentID, int Level)
- {
- SPSite site = SPContext.Current.Site;
- SPWeb web = SPContext.Current.Web;
- SPList list = web.Lists["TreeViewList"];
- var query = from SPListItem item in list.Items where item["ParentID"].ToString() == ParentID.ToString() && item["Level"].ToString() == Level.ToString() select item;
- foreach (SPListItem item in query)
- {
- TreeNode childnode = new TreeNode();
- childnode.Text = item["标题"].ToString();
- childnode.Value = item["ID"].ToString();
- SPFieldUrlValue url = new SPFieldUrlValue(item["Url"].ToString());
- childnode.NavigateUrl = url.Url;
- childnode.ImageUrl = "/_layouts/images/folder.gif";
- NodesBind(childnode, Int32.Parse(item["ID"].ToString()), Int32.Parse(item["Level"].ToString()) + 1);//递归读取列表,绑定到子节点
- CurrentNode.ChildNodes.Add(childnode);
- }
- }
- }
- }
4、问题部分
当TreeView控件tvList的ShowExpandCollapse属性(是否显示展开节点指示符)设为true时,会出现如下错误
查了一些资料,笔者未能解决此问题,只能牺牲一些TreeView控件的显示效果,如有更好的方法,请不吝赐教!!
0 0
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
- SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)
- 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)
- sharepoint2010 webpart开发心得
- Sharepoint2010 :Webpart开发
- TreeView 树形控件的加载
- 关于asp树形导航的问题!!
- TreeView树形控件递归绑定数据库里的数据
- TreeView树形控件递归绑定数据库里的数据
- windows应用开发由浅入深(二)常用控件--滑块、标签、树形控件、列表控件
- 建立treeview树形列表的递归代码
- 关于树形控件的一些问题
- android 多级树形控件的开发
- C# .NET treeView(树形控件)绑定数据的通用方法 (精)
- 树形控件TreeView的序列化
- 在Sharepoint2010中发布VS2010开发的WebPart
- 树形数据列表的使用
- Java使用memcached
- Mac下批量删除.svn文件
- 纯C语言写的拼图游戏源码
- Button绑定onTouchListenner后加载background失效
- sql 锁以及解锁
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题
- 第3周 能承受海量压力的键值型数据库Redis
- 初试Linux shell
- 安卓平台播放器初步调研汇报
- linux下 s3c2440 lcd驱动移植详解
- 根据字符串生成java对象
- Asterisk 可加载模块
- 关于java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object的错误报告
- android背景图片及状态切换