树视图在Web平台中是一种常见的菜单视图,特别是文档层级树目录结构的应用。在SharePoint2007中所推崇使用的快速启动由于只能配置2级菜单,很多时候不能满足要求。用Designer研究了一下树控件部分的页面代码。发现有几个关键属性似乎可以定制:rootContextObjet(应该是根节点的类型)、RootListId(根列表节点)、RootWebId(根站点节点)。但是默认情况下,rootContextObject=“Web”,其它值查遍文档也没有发现(郁闷....),RootListId和RootWebId都是空的,或者是"0000-0000。。。。"。
显然,rootContextObject不能是"Web",随便猜着试用了“List”、“SPList”都不行,不得已求助于Reflector,发现rootContextObject有三种判断,"Web"、"List"和空。而"List"显然是代码运行时产生的。我试了赋值rootContextObject=“List”果然不行。就干脆把rootContextObject删掉。OK了。
如果要显示多个列表,可以如下:使用多个树控件和层级数据源。代码如下:
显然,rootContextObject不能是"Web",随便猜着试用了“List”、“SPList”都不行,不得已求助于Reflector,发现rootContextObject有三种判断,"Web"、"List"和空。而"List"显然是代码运行时产生的。我试了赋值rootContextObject=“List”果然不行。就干脆把rootContextObject删掉。OK了。
如果要显示多个列表,可以如下:使用多个树控件和层级数据源。代码如下:
1 <div class="ms-treeviewouter">
2 <SharePoint:SPHierarchyDataSourceControl
3 runat="server"
4 id="TreeViewDataSource"
5 RootListId="ff1af9a7-daac-42fe-b9e3-26f08c8992e7"
6 RootWebId="83d09d8e-484e-4020-8b64-d2ee993df38c"
7 IncludeDiscussionFolders="true"
8 />
9 <SharePoint:SPHierarchyDataSourceControl
10 runat="server"
11 id="TreeViewDataSource1"
12 RootListId="4068d162-02fc-46fe-9490-78e451c9e377"
13 RootWebId="83d09d8e-484e-4020-8b64-d2ee993df38c"
14 IncludeDiscussionFolders="true"
15 />
16
17 <SharePoint:SPRememberScroll runat="server" id="TreeViewRememberScroll" onscroll="javascript:_spRecordScrollPositions(this);" Style="overflow: auto;height: 400px;width: 150px; ">
18 <Sharepoint:SPTreeView
19 id="WebTreeView"
20 runat="server"
21 ShowLines="false"
22 DataSourceId="TreeViewDataSource"
23 ExpandDepth="0"
24 SelectedNodeStyle-CssClass="ms-tvselected"
25 NodeStyle-CssClass="ms-navitem"
26 NodeStyle-HorizontalPadding="2"
27 SkipLinkText=""
28 NodeIndent="12"
29 ExpandImageUrl="/_layouts/images/tvplus.gif"
30 CollapseImageUrl="/_layouts/images/tvminus.gif"
31 NoExpandImageUrl="/_layouts/images/tvblank.gif"
32 >
33 </Sharepoint:SPTreeView>
34 <Sharepoint:SPTreeView
35 id="WebTreeView1"
36 runat="server"
37 ShowLines="false"
38 DataSourceId="TreeViewDataSource1"
39 ExpandDepth="0"
40 SelectedNodeStyle-CssClass="ms-tvselected"
41 NodeStyle-CssClass="ms-navitem"
42 NodeStyle-HorizontalPadding="2"
43 SkipLinkText=""
44 NodeIndent="12"
45 ExpandImageUrl="/_layouts/images/tvplus.gif"
46 CollapseImageUrl="/_layouts/images/tvminus.gif"
47 NoExpandImageUrl="/_layouts/images/tvblank.gif"
48 >
49 </Sharepoint:SPTreeView>
50
51 </Sharepoint:SPRememberScroll>
52 </div>
53
2 <SharePoint:SPHierarchyDataSourceControl
3 runat="server"
4 id="TreeViewDataSource"
5 RootListId="ff1af9a7-daac-42fe-b9e3-26f08c8992e7"
6 RootWebId="83d09d8e-484e-4020-8b64-d2ee993df38c"
7 IncludeDiscussionFolders="true"
8 />
9 <SharePoint:SPHierarchyDataSourceControl
10 runat="server"
11 id="TreeViewDataSource1"
12 RootListId="4068d162-02fc-46fe-9490-78e451c9e377"
13 RootWebId="83d09d8e-484e-4020-8b64-d2ee993df38c"
14 IncludeDiscussionFolders="true"
15 />
16
17 <SharePoint:SPRememberScroll runat="server" id="TreeViewRememberScroll" onscroll="javascript:_spRecordScrollPositions(this);" Style="overflow: auto;height: 400px;width: 150px; ">
18 <Sharepoint:SPTreeView
19 id="WebTreeView"
20 runat="server"
21 ShowLines="false"
22 DataSourceId="TreeViewDataSource"
23 ExpandDepth="0"
24 SelectedNodeStyle-CssClass="ms-tvselected"
25 NodeStyle-CssClass="ms-navitem"
26 NodeStyle-HorizontalPadding="2"
27 SkipLinkText=""
28 NodeIndent="12"
29 ExpandImageUrl="/_layouts/images/tvplus.gif"
30 CollapseImageUrl="/_layouts/images/tvminus.gif"
31 NoExpandImageUrl="/_layouts/images/tvblank.gif"
32 >
33 </Sharepoint:SPTreeView>
34 <Sharepoint:SPTreeView
35 id="WebTreeView1"
36 runat="server"
37 ShowLines="false"
38 DataSourceId="TreeViewDataSource1"
39 ExpandDepth="0"
40 SelectedNodeStyle-CssClass="ms-tvselected"
41 NodeStyle-CssClass="ms-navitem"
42 NodeStyle-HorizontalPadding="2"
43 SkipLinkText=""
44 NodeIndent="12"
45 ExpandImageUrl="/_layouts/images/tvplus.gif"
46 CollapseImageUrl="/_layouts/images/tvminus.gif"
47 NoExpandImageUrl="/_layouts/images/tvblank.gif"
48 >
49 </Sharepoint:SPTreeView>
50
51 </Sharepoint:SPRememberScroll>
52 </div>
53