sharepoint 2007 中数据视图的使用
Sharepoint中的数据视图(DataFormWebPart)有着非常重要的作用,特别是在需要定制自己的页面显示格式的时候。
数据视图可以将列表,比如通知列表、博客列表、链接列表等转换成数据视图,然后可以任意控制显示格式
数据视图可以从多个数据源取数据来显示,这里的数据源可以是子网站中的列表、可以是数据库中的记录、可以是其它网站的RSS源
数据视图可以实现分页、排序、查询、过滤等功能
数据视图可以利用ddwrt:IfHasRights实现权限的判断.....
基本的功能我就不说,下面列出我在开发中觉得比较有用的、不太注意到的一些功能。
Sharepoint中的数据视图(DataFormWebPart)有着非常重要的作用,特别是在需要定制自己的页面显示格式的时候。
数据视图可以将列表,比如通知列表、博客列表、链接列表等转换成数据视图,然后可以任意控制显示格式
数据视图可以从多个数据源取数据来显示,这里的数据源可以是子网站中的列表、可以是数据库中的记录、可以是其它网站的RSS源
数据视图可以实现分页、排序、查询、过滤等功能
数据视图可以利用ddwrt:IfHasRights实现权限的判断.....
基本的功能我就不说了,下面列出我在开发中觉得比较有用的、不太注意到的一些功能。
首先给出一个最简单的数据视图的代码:
![](/Images/OutliningIndicators/ContractedBlock.gif)
数据视图代码
1
<webpartpages:dataformwebpart runat="server" __markuptype="vsattributemarkup" viewflag="9"
2
viewcontenttypeid="0x" detaillink="/blog/Lists/OtherBlogs/AllItems.aspx" width=""
3
height="" framestate="Normal" isincluded="true" isvisible="true" dir="Default"
4
allowremove="true" allowzonechange="true" allowminimize="true" description="将“其他博客”列表用于指向其他博客的链接。"
5
missingassembly="无法导入此 Web 部件。" partimagesmall="" partimagelarge="" partorder="3"
6
displayname="" listname="{FB1AC17A-BC4E-495F-8D4B-251A88830D6F}" title="其他博客"
7
frametype="None" nodefaultstyle="TRUE" __webpartid="{3D57C8F6-1465-4337-B9C9-6D2EE8C12F3C}"
8
id="g_3d57c8f6_1465_4337_b9c9_6d2ee8c12f3c" pagesize="30" __allowxsltediting="true"
9
webpart="true">
10
<DataSources>
11
<SharePoint:SPDataSource runat="server" IncludeHidden="true" SelectCommand="<View><Query><OrderBy><FieldRef Name="Order" Ascending="TRUE"/></OrderBy></Query></View>"
12
ID="datasource2" DataSourceMode="List" UseInternalName="true">
13
<InsertParameters>
14
<asp:Parameter Name="ListID" DefaultValue="{FB1AC17A-BC4E-495F-8D4B-251A88830D6F}" />
15
</InsertParameters>
16
<UpdateParameters>
17
<asp:Parameter Name="ListID" DefaultValue="{FB1AC17A-BC4E-495F-8D4B-251A88830D6F}" />
18
</UpdateParameters>
19
<DeleteParameters>
20
<asp:Parameter Name="ListID" DefaultValue="{FB1AC17A-BC4E-495F-8D4B-251A88830D6F}" />
21
</DeleteParameters>
22
<SelectParameters>
23
<asp:Parameter Name="ListID" DefaultValue="{FB1AC17A-BC4E-495F-8D4B-251A88830D6F}" />
24
<asp:Parameter Name="MaximumRows" DefaultValue="30" />
25
</SelectParameters>
26
</SharePoint:SPDataSource>
27
</DataSources>
28
<ParameterBindings>
29
<ParameterBinding Name="PageUrl" Location="Postback;Connection;CAMLVariable"/>
30
<ParameterBinding Name="PagePath" Location="Postback;Connection;CAMLVariable"/>
31
<ParameterBinding Name="HttpHost" Location="Postback;Connection;CAMLVariable"/>
32
<ParameterBinding Name="HttpPath" Location="Postback;Connection;CAMLVariable"/>
33
<ParameterBinding Name="List" Location="Postback;Connection;CAMLVariable"/>
34
<ParameterBinding Name="URL_Display" Location="Postback;Connection;CAMLVariable"/>
35
<ParameterBinding Name="HttpVDir" Location="Postback;Connection;CAMLVariable"/>
36
<ParameterBinding Name="View" Location="Postback;Connection;CAMLVariable"/>
37
<ParameterBinding Name="FilterLink" Location="Postback;Connection;CAMLVariable"/>
38
<ParameterBinding Name="Language" Location="Postback;Connection;CAMLVariable"/>
39
<ParameterBinding Name="dvt_sortfield" Location="Postback;Connection;CAMLVariable"/>
40
<ParameterBinding Name="dvt_sortdir" Location="Postback;Connection;CAMLVariable"/>
41
<ParameterBinding Name="dvt_p2plinkfields" Location="Postback;Connection;CAMLVariable"/>
42
<ParameterBinding Name="dvt_sorttype" Location="Postback;Connection;CAMLVariable"/>
43
<ParameterBinding Name="dvt_apos" Location="Postback;Connection;CAMLVariable"/>
44
<ParameterBinding Name="filterParam" Location="Postback;Connection"/>
45
<ParameterBinding Name="ImagesPath" Location="Postback;Connection;CAMLVariable"/>
46
<ParameterBinding Name="ListUrlDir" Location="Postback;Connection;CAMLVariable"/>
47
<ParameterBinding Name="EMail" Location="Postback;Connection;CAMLVariable"/>
48
<ParameterBinding Name="Userid" Location="Postback;Connection;CAMLVariable"/>
49
<ParameterBinding Name="URL_New" Location="Postback;Connection;CAMLVariable"/>
50
<ParameterBinding Name="URL_Edit" Location="Postback;Connection;CAMLVariable"/>
51
<ParameterBinding Name="URL_Lookup" Location="Postback;Connection;CAMLVariable"/>
52
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
53
<ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
54
<ParameterBinding Name="Param1" Location="QueryString(Name)" DefaultValue=""/>
55
</ParameterBindings>
56
<Xsl>
57
<xsl:stylesheet version="1.0" exclude-result-prefixes="rs z o s ddwrt dt msxsl" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:o="urn:schemas-microsoft-com:office" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:ddwrt2="urn:frontpage:internal"><xsl:output method="html" indent="no" /><xsl:decimal-format NaN="" />
58
<xsl:param name="PageUrl" />
59
<xsl:param name="PagePath" />
60
<xsl:param name="HttpHost" />
61
<xsl:param name="HttpPath" />
62
<xsl:param name="List" />
63
<xsl:param name="URL_Display" />
64
<xsl:param name="HttpVDir" />
65
<xsl:param name="View" />
66
<xsl:param name="FilterLink" select="ddwrt:FilterLink()" />
67
<xsl:param name="Language">1033</xsl:param>
68
<xsl:param name="dvt_sortfield"></xsl:param>
69
<xsl:param name="dvt_sortdir">ascending</xsl:param>
70
<xsl:param name="dvt_p2plinkfields"></xsl:param>
71
<xsl:param name="dvt_sorttype">text</xsl:param>
72
<xsl:param name="dvt_apos">'</xsl:param>
73
<xsl:param name="filterParam" ddwrt:NoCAMLVariable="1"></xsl:param>
74
<xsl:param name="ImagesPath"></xsl:param>
75
<xsl:param name="ListUrlDir"></xsl:param>
76
<xsl:param name="EMail">EMail</xsl:param>
77
<xsl:param name="Userid"></xsl:param>
78
<xsl:variable name="dvt_1_automode">0</xsl:variable>
79
<xsl:param name="URL_New" />
80
<xsl:param name="URL_Edit" />
81
<xsl:param name="URL_Lookup" />
82
<xsl:param name="Param1" />
83
<xsl:param name="Param2" />
84
<xsl:param name="Param3" />
85
<xsl:param name="Param4" />
86
<xsl:template match="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:asp="http://schemas.microsoft.com/ASPNET/20">
87
<xsl:call-template name="dvt_1" />
88
</xsl:template>
89![](/Images/OutliningIndicators/None.gif)
90
91![](/Images/OutliningIndicators/None.gif)
92
<xsl:template name="dvt_1">
93
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
94
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
95
<xsl:variable name="RowLimit" select="30" />
96
<xsl:variable name="dvt_RowCount" select="count($Rows)" />
97
98
<xsl:variable name="dvt_IsEmpty" select="$dvt_RowCount = 0" />
99
<xsl:choose>
100
<xsl:when test="$dvt_IsEmpty">
101
此列表中不包含任何项目
102
<xsl:call-template name="dvt_1.toolbar">
103
<xsl:with-param name="Rows" select="$Rows" />
104
</xsl:call-template>
105
</xsl:when>
106
<xsl:otherwise> <div class="ms-WPBody">
107
<table style="width: 40%; " cellspacing="0" cellpadding="0">
108
<xsl:call-template name="dvt_1.body">
109
<xsl:with-param name="ParentPath" />
110
<xsl:with-param name="Rows" select="$Rows" />
111
<xsl:with-param name="FirstRow" select="1" />
112
<xsl:with-param name="LastRow" select="$RowLimit" />
113
114
</xsl:call-template>
115
</table></div>
116
<xsl:call-template name="dvt_1.toolbar">
117
<xsl:with-param name="Rows" select="$Rows" />
118
</xsl:call-template>
119
</xsl:otherwise>
120
</xsl:choose>
121
</xsl:template>
122
<xsl:template name="dvt_1.body">
123
<xsl:param name="ParentPath" />
124
<xsl:param name="Rows" />
125
<xsl:param name="FirstRow" />
126
<xsl:param name="LastRow" />
127
<xsl:for-each select="$Rows">
128
<xsl:sort select="*[name() = $dvt_sortfield] | @*[name() = $dvt_sortfield] | text()[name(ancestor::*[1]) = $dvt_sortfield]" order="{$dvt_sortdir}" data-type="{$dvt_sorttype}" />
129
<xsl:variable name="dvt_KeepItemsTogether" select="false()" />
130
131
<xsl:variable name="dvt_HideGroupDetail" select="false()" />
132
<xsl:if test=" (position() >=$FirstRow and position() <= $LastRow) or $dvt_KeepItemsTogether">
133
<xsl:if test="not($dvt_HideGroupDetail)" ddwrt:cf_ignore="1">
134
<xsl:variable name="SrcPos"><xsl:number /></xsl:variable>
135
<xsl:call-template name="dvt_1.rowview">
136
<xsl:with-param name="ParentPath" select="$ParentPath" />
137
<xsl:with-param name="SrcPos" select="$SrcPos" />
138
</xsl:call-template>
139
</xsl:if>
140
</xsl:if>
141
</xsl:for-each>
142
</xsl:template>
143
<xsl:template name="dvt_1.rowview">
144
<xsl:param name="ParentPath" />
145
<xsl:param name="SrcPos" />
146
<tr>
147
<td style="height:24px" class="style10" >•
148
<A HREF="{substring-before(@URL, ', ')}">
149
<xsl:choose>
150
<xsl:when test="substring-after(@URL, ', ')=''"><xsl:value-of disable-output-escaping="no" select="substring-before(@URL, ', ')" /></xsl:when>
151
<xsl:otherwise><xsl:value-of select="substring-after(@URL, ', ')" /></xsl:otherwise>
152
</xsl:choose>
153
</A>
154
</td>
155![](/Images/OutliningIndicators/None.gif)
156
</tr>
157
</xsl:template>
158
<xsl:template name="dvt_1.toolbar">
159
<xsl:param name="Rows" />
160
<xsl:choose>
161
<xsl:when test="ddwrt:IfHasRights(2)"><table width="40%" cellpadding="0" cellspacing="0" border="0" msopnlid="data"> <tr> <td align="left" class="ms-addnew" style="padding-bottom: 3px">
162
<xsl:text xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" ddwrt:nbsp-preserve="yes" disable-output-escaping="yes">&nbsp;</xsl:text>
163
<a class="ms-addnew" ID="idHomePageNewLink" href="{$URL_New}" ONCLICK="javascript:NewItem('{$URL_New}', true);javascript:return false;" target="_self">添加新链接</a>
164
165
</td>
166
</tr>
167
<tr><td><IMG SRC="/_layouts/images/blank.gif" width="1" height="5" alt="" /></td></tr>
168
</table></xsl:when>
169
<xsl:otherwise></xsl:otherwise>
170
</xsl:choose>
171
</xsl:template>
172
</xsl:stylesheet>
173![](/Images/OutliningIndicators/None.gif)
174
</Xsl>
175
<DataFields>@ID,ID;@ContentType,内容类型;@Modified,修改时间;@Created,创建时间;@Author,创建者;@Editor,修改者;@_UIVersionString,版本;@Attachments,附件;@Title,标题;@File_x0020_Type,文件类型;@FileLeafRef,名称 (用于表单);@FileDirRef,路径;@FSObjType,项目类型;@_HasCopyDestinations,具有复制目标;@_CopySource,复制源;@ContentTypeId,内容类型 ID;@_ModerationStatus,审批状态;@_UIVersion,UI 版本;@Created_x0020_Date,创建时间;@FileRef,URL 路径;@URL,URL;@Comments,注释;</DataFields>
176
</webpartpages:dataformwebpart>
177
可以看到数据视图主意分成以下几个部分:
DataSources 指定数据源,其中指定的ListID就是一个列表的ID值(AllLists表中的tp_ID字段值)
ParameterBindings 绑定的一些参数,从29-53行使用的是Connection方式,表示是从外部传入到这个webpart的值
54行QueryString(Name)表示接收的是Url参数中的Name值
另外还可以得到一些系统变量的值,比如:
<ParameterBinding Name="UserName" Location="ServerVariable(LOGON_USER)" />
可以取得当前登录用户的名称,可以在需要的地方显示,所有可以使用的系统变量参见msdn:
http://msdn2.microsoft.com/en-us/library/ms524602.aspx
DataFields 部分定义数据源中可以使用的字段
XSL 部分是实际控制页面显示的部分,也是最重要的部分。
显示字段最基本的两种方式:
<xsl:value-of disable-output-escaping="no" select="(@URL, ', ')" />
显示数据源中的字段值
<xsl:value-of select="$PageUrl" />
显示和使用定义的参数或变量的值
其中94行:<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" /> 表示取得数据源中的所有行
其它的使用方式基本和标准的xsl的使用都一样。
另外数据视图中定义了自己的一个xsl的命名空间:xmlns:ddwrt=http://schemas.microsoft.com/WebParts/v2/DataView/runtime
具体提供了哪些方法可以参看msdn的一篇文章(是基于sharepoint 2003的,可以参考一下):
http://msdn2.microsoft.com/zh-cn/library/aa505323(en-us).aspx
例:使用ddwrt实现权限控制:
![](/Images/OutliningIndicators/ContractedBlock.gif)
判断权限代码
1
<WebPartPages:DataFormWebPart runat="server" IsIncluded="True" FrameType="None" NoDefaultStyle="TRUE" ViewFlag="0" Title="DataView 1" __markuptype="vsattributemarkup" __WebPartId="{8C68F280-8632-4B32-AF48-23C9FE6D69E7}" id="g_8c68f280_8632_4b32_af48_23c9fe6d69e7">
2
<DataSources>
3
4
</DataSources>
5
6
<datafields/>
7
<XSL>
8
<xsl:stylesheet version="1.0" exclude-result-prefixes="rs z o s ddwrt dt msxsl" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:o="urn:schemas-microsoft-com:office" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:ddwrt2="urn:frontpage:internal"><xsl:output method="html" indent="no" /><xsl:decimal-format NaN="" />
9
<xsl:template match="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" xmlns:asp="http://schemas.microsoft.com/ASPNET/20">
10
<xsl:if test="ddwrt:IfHasRights(2)">
11
已经登录
12
</xsl:if>
13
</xsl:template>
14
</xsl:stylesheet>
15
</XSL>
16
</WebPartPages:DataFormWebPart>
主要就是使用了IfHasRights(2)这个方法
方法的说明及其它方法的使用也可以在Sharepoint Designer的XPath表达式生成器中看到:
![](/images/cnblogs_com/firstyi/sp1.JPG)
数据视图可以将列表,比如通知列表、博客列表、链接列表等转换成数据视图,然后可以任意控制显示格式
数据视图可以从多个数据源取数据来显示,这里的数据源可以是子网站中的列表、可以是数据库中的记录、可以是其它网站的RSS源
数据视图可以实现分页、排序、查询、过滤等功能
数据视图可以利用ddwrt:IfHasRights实现权限的判断.....
基本的功能我就不说了,下面列出我在开发中觉得比较有用的、不太注意到的一些功能。
首先给出一个最简单的数据视图的代码:
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
63
![](/Images/OutliningIndicators/None.gif)
64
![](/Images/OutliningIndicators/None.gif)
65
![](/Images/OutliningIndicators/None.gif)
66
![](/Images/OutliningIndicators/None.gif)
67
![](/Images/OutliningIndicators/None.gif)
68
![](/Images/OutliningIndicators/None.gif)
69
![](/Images/OutliningIndicators/None.gif)
70
![](/Images/OutliningIndicators/None.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/None.gif)
73
![](/Images/OutliningIndicators/None.gif)
74
![](/Images/OutliningIndicators/None.gif)
75
![](/Images/OutliningIndicators/None.gif)
76
![](/Images/OutliningIndicators/None.gif)
77
![](/Images/OutliningIndicators/None.gif)
78
![](/Images/OutliningIndicators/None.gif)
79
![](/Images/OutliningIndicators/None.gif)
80
![](/Images/OutliningIndicators/None.gif)
81
![](/Images/OutliningIndicators/None.gif)
82
![](/Images/OutliningIndicators/None.gif)
83
![](/Images/OutliningIndicators/None.gif)
84
![](/Images/OutliningIndicators/None.gif)
85
![](/Images/OutliningIndicators/None.gif)
86
![](/Images/OutliningIndicators/None.gif)
87
![](/Images/OutliningIndicators/None.gif)
88
![](/Images/OutliningIndicators/None.gif)
89
![](/Images/OutliningIndicators/None.gif)
90
![](/Images/OutliningIndicators/None.gif)
91
![](/Images/OutliningIndicators/None.gif)
92
![](/Images/OutliningIndicators/None.gif)
93
![](/Images/OutliningIndicators/None.gif)
94
![](/Images/OutliningIndicators/None.gif)
95
![](/Images/OutliningIndicators/None.gif)
96
![](/Images/OutliningIndicators/None.gif)
97
![](/Images/OutliningIndicators/None.gif)
98
![](/Images/OutliningIndicators/None.gif)
99
![](/Images/OutliningIndicators/None.gif)
100
![](/Images/OutliningIndicators/None.gif)
101
![](/Images/OutliningIndicators/None.gif)
102
![](/Images/OutliningIndicators/None.gif)
103
![](/Images/OutliningIndicators/None.gif)
104
![](/Images/OutliningIndicators/None.gif)
105
![](/Images/OutliningIndicators/None.gif)
106
![](/Images/OutliningIndicators/None.gif)
107
![](/Images/OutliningIndicators/None.gif)
108
![](/Images/OutliningIndicators/None.gif)
109
![](/Images/OutliningIndicators/None.gif)
110
![](/Images/OutliningIndicators/None.gif)
111
![](/Images/OutliningIndicators/None.gif)
112
![](/Images/OutliningIndicators/None.gif)
113
![](/Images/OutliningIndicators/None.gif)
114
![](/Images/OutliningIndicators/None.gif)
115
![](/Images/OutliningIndicators/None.gif)
116
![](/Images/OutliningIndicators/None.gif)
117
![](/Images/OutliningIndicators/None.gif)
118
![](/Images/OutliningIndicators/None.gif)
119
![](/Images/OutliningIndicators/None.gif)
120
![](/Images/OutliningIndicators/None.gif)
121
![](/Images/OutliningIndicators/None.gif)
122
![](/Images/OutliningIndicators/None.gif)
123
![](/Images/OutliningIndicators/None.gif)
124
![](/Images/OutliningIndicators/None.gif)
125
![](/Images/OutliningIndicators/None.gif)
126
![](/Images/OutliningIndicators/None.gif)
127
![](/Images/OutliningIndicators/None.gif)
128
![](/Images/OutliningIndicators/None.gif)
129
![](/Images/OutliningIndicators/None.gif)
130
![](/Images/OutliningIndicators/None.gif)
131
![](/Images/OutliningIndicators/None.gif)
132
![](/Images/OutliningIndicators/None.gif)
133
![](/Images/OutliningIndicators/None.gif)
134
![](/Images/OutliningIndicators/None.gif)
135
![](/Images/OutliningIndicators/None.gif)
136
![](/Images/OutliningIndicators/None.gif)
137
![](/Images/OutliningIndicators/None.gif)
138
![](/Images/OutliningIndicators/None.gif)
139
![](/Images/OutliningIndicators/None.gif)
140
![](/Images/OutliningIndicators/None.gif)
141
![](/Images/OutliningIndicators/None.gif)
142
![](/Images/OutliningIndicators/None.gif)
143
![](/Images/OutliningIndicators/None.gif)
144
![](/Images/OutliningIndicators/None.gif)
145
![](/Images/OutliningIndicators/None.gif)
146
![](/Images/OutliningIndicators/None.gif)
147
![](/Images/OutliningIndicators/None.gif)
148
![](/Images/OutliningIndicators/None.gif)
149
![](/Images/OutliningIndicators/None.gif)
150
![](/Images/OutliningIndicators/None.gif)
151
![](/Images/OutliningIndicators/None.gif)
152
![](/Images/OutliningIndicators/None.gif)
153
![](/Images/OutliningIndicators/None.gif)
154
![](/Images/OutliningIndicators/None.gif)
155
![](/Images/OutliningIndicators/None.gif)
156
![](/Images/OutliningIndicators/None.gif)
157
![](/Images/OutliningIndicators/None.gif)
158
![](/Images/OutliningIndicators/None.gif)
159
![](/Images/OutliningIndicators/None.gif)
160
![](/Images/OutliningIndicators/None.gif)
161
![](/Images/OutliningIndicators/None.gif)
162
![](/Images/OutliningIndicators/None.gif)
163
![](/Images/OutliningIndicators/None.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/None.gif)
167
![](/Images/OutliningIndicators/None.gif)
168
![](/Images/OutliningIndicators/None.gif)
169
![](/Images/OutliningIndicators/None.gif)
170
![](/Images/OutliningIndicators/None.gif)
171
![](/Images/OutliningIndicators/None.gif)
172
![](/Images/OutliningIndicators/None.gif)
173
![](/Images/OutliningIndicators/None.gif)
174
![](/Images/OutliningIndicators/None.gif)
175
![](/Images/OutliningIndicators/None.gif)
176
![](/Images/OutliningIndicators/None.gif)
177
![](/Images/OutliningIndicators/None.gif)
可以看到数据视图主意分成以下几个部分:
DataSources 指定数据源,其中指定的ListID就是一个列表的ID值(AllLists表中的tp_ID字段值)
ParameterBindings 绑定的一些参数,从29-53行使用的是Connection方式,表示是从外部传入到这个webpart的值
54行QueryString(Name)表示接收的是Url参数中的Name值
另外还可以得到一些系统变量的值,比如:
<ParameterBinding Name="UserName" Location="ServerVariable(LOGON_USER)" />
可以取得当前登录用户的名称,可以在需要的地方显示,所有可以使用的系统变量参见msdn:
http://msdn2.microsoft.com/en-us/library/ms524602.aspx
DataFields 部分定义数据源中可以使用的字段
XSL 部分是实际控制页面显示的部分,也是最重要的部分。
显示字段最基本的两种方式:
<xsl:value-of disable-output-escaping="no" select="(@URL, ', ')" />
显示数据源中的字段值
<xsl:value-of select="$PageUrl" />
显示和使用定义的参数或变量的值
其中94行:<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" /> 表示取得数据源中的所有行
其它的使用方式基本和标准的xsl的使用都一样。
另外数据视图中定义了自己的一个xsl的命名空间:xmlns:ddwrt=http://schemas.microsoft.com/WebParts/v2/DataView/runtime
具体提供了哪些方法可以参看msdn的一篇文章(是基于sharepoint 2003的,可以参考一下):
http://msdn2.microsoft.com/zh-cn/library/aa505323(en-us).aspx
例:使用ddwrt实现权限控制:
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
主要就是使用了IfHasRights(2)这个方法
方法的说明及其它方法的使用也可以在Sharepoint Designer的XPath表达式生成器中看到: