日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉:http://blog.csdn.net/miragesky2049/article/details/7204882

SharePoint2010沙盒解決方案基礎開發——關于TreeView樹形控件讀取列表數據(樹形導航)的webpart開發及問題

1、實現效果如下:

點擊各個節點進入相應的鏈接

2、測試列表:

3、創建解決方案及webpart,代碼如下所示

[html] view plaincopyprint?
  1. using?System;??
  2. using?System.ComponentModel;??
  3. using?System.Web;??
  4. using?System.Web.UI;??
  5. using?System.Web.UI.WebControls;??
  6. using?System.Web.UI.WebControls.WebParts;??
  7. using?Microsoft.SharePoint;??
  8. using?Microsoft.SharePoint.WebControls;??
  9. //添加引用??
  10. using?System.Xml.Serialization;??
  11. using?System.Linq;??
  12. using?System.Data;??
  13. ??
  14. namespace?TestTreeView.TestTreeView??
  15. {??
  16. ????[ToolboxData("<{0}:WPToolPaneTest?runat=server></{0}:TestTreeView>"),?XmlRoot(Namespace?=?"TestTreeView")]定義Toolbox?data????
  17. ????public?class?TestTreeView?:System.Web.UI.WebControls.WebParts.WebPart??
  18. ????{??
  19. ????????TreeView?tvList?=?new?TreeView();??
  20. ??
  21. ????????protected?override?void?CreateChildControls()??
  22. ????????{??
  23. ????????????tvList.NodeStyle.NodeSpacing?=?5;//設置相鄰節點的垂直間距??
  24. ????????????tvList.ShowExpandCollapse?=?false;//不顯示展開節點指示符,注:詳細查看問題部分??
  25. ????????????ListBind(0,?0);??
  26. ????????????this.Controls.Add(tvList);??
  27. ????????}??
  28. ??
  29. ????????protected?override?void?RenderContents(HtmlTextWriter?writer)??
  30. ????????{??
  31. ????????????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'>");??
  32. ????????????this.tvList.RenderControl(writer);??
  33. ????????????writer.Write("</div></td></tr></table></div>");??
  34. ????????}??
  35. ??
  36. ????????///?<summary>??
  37. ????????///?綁定TreeViewList列表數據??
  38. ????????///?</summary>??
  39. ????????///?<param?name="ParentID">上一級導航ID</param>??
  40. ????????///?<param?name="Level">所在樹形的級別</param>??
  41. ????????private?void?ListBind(int?ParentID,?int?Level)??
  42. ????????{??
  43. ????????????SPSite?site?=?SPContext.Current.Site;??
  44. ????????????SPWeb?web?=?SPContext.Current.Web;??
  45. ????????????SPList?list?=?web.Lists["TreeViewList"];??
  46. ????????????var?query?=?from?SPListItem?item?in?list.Items?where?item["ParentID"].ToString()?==?ParentID.ToString()?&&?item["Level"].ToString()?==?Level.ToString()?select?item;??
  47. ????????????foreach?(SPListItem?item?in?query)??
  48. ????????????{??
  49. ????????????????TreeNode?parentnode?=?new?TreeNode();??
  50. ????????????????parentnode.Text?=?item["標題"].ToString();??
  51. ????????????????parentnode.Value?=?item["ID"].ToString();??
  52. ????????????????parentnode.ImageUrl?=?"/_layouts/images/folder.gif";??
  53. ????????????????SPFieldUrlValue?url=new?SPFieldUrlValue(item["Url"].ToString());??
  54. ????????????????parentnode.NavigateUrl?=?url.Url;??
  55. ????????????????NodesBind(parentnode,Int32.Parse(item["ID"].ToString()),Int32.Parse(item["Level"].ToString())+1);??
  56. ????????????????tvList.Nodes.Add(parentnode);??
  57. ????????????}??
  58. ????????}??
  59. ??
  60. ????????///?<summary>??
  61. ????????///?遞歸綁定子節點內容??
  62. ????????///?</summary>??
  63. ????????///?<param?name="CurrentNode">當前節點</param>??
  64. ????????///?<param?name="ParentID">上一級導航ID</param>??
  65. ????????///?<param?name="Level">所在樹形的級別</param>??
  66. ????????private?void?NodesBind(TreeNode?CurrentNode,?int?ParentID,?int?Level)??
  67. ????????{??
  68. ????????????SPSite?site?=?SPContext.Current.Site;??
  69. ????????????SPWeb?web?=?SPContext.Current.Web;??
  70. ????????????SPList?list?=?web.Lists["TreeViewList"];??
  71. ????????????var?query?=?from?SPListItem?item?in?list.Items?where?item["ParentID"].ToString()?==?ParentID.ToString()?&&?item["Level"].ToString()?==?Level.ToString()?select?item;??
  72. ????????????foreach?(SPListItem?item?in?query)??
  73. ????????????{??
  74. ????????????????TreeNode?childnode?=?new?TreeNode();??
  75. ????????????????childnode.Text?=?item["標題"].ToString();??
  76. ????????????????childnode.Value?=?item["ID"].ToString();??
  77. ????????????????SPFieldUrlValue?url?=?new?SPFieldUrlValue(item["Url"].ToString());??
  78. ????????????????childnode.NavigateUrl?=?url.Url;??
  79. ????????????????childnode.ImageUrl?=?"/_layouts/images/folder.gif";??
  80. ????????????????NodesBind(childnode,?Int32.Parse(item["ID"].ToString()),?Int32.Parse(item["Level"].ToString())?+?1);//遞歸讀取列表,綁定到子節點??
  81. ????????????????CurrentNode.ChildNodes.Add(childnode);??
  82. ??????????????????
  83. ????????????}??
  84. ????????}??
  85. ??
  86. ????}??
  87. }??
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控件的顯示效果,如有更好的方法,請不吝賜教!!

?

轉載于:https://www.cnblogs.com/jackljf/p/3589213.html

總結

以上是生活随笔為你收集整理的SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。