Sharepoint中的数据视图(
DataFormWebPart
)有着非常重要的作用,特别是在需要定制自己的页面显示格式的时候。
数据视图可以将列表,比如通知列表、博客列表、链接列表等转换成数据视图,然后可以任意控制显示格式
数据视图可以从多个数据源取数据来显示,这里的数据源可以是子网站中的列表、可以是数据库中的记录、可以是其它网站的RSS源
数据视图可以实现分页、排序、查询、过滤等功能
数据视图可以利用 ddwrt:IfHasRights 实现权限的判断.....
基本的功能我就不说了,下面列出我在开发中觉得比较有用的、不太注意到的一些功能。
首先给出一个最简单的数据视图的代码:
数据视图代码
可以看到数据视图主意分成以下几个部分:
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实现权限控制:
判断权限代码
主要就是使用了IfHasRights(2)这个方法
方法的说明及其它方法的使用也可以在Sharepoint Designer的 XPath表达式生成器 中看到:
数据视图可以将列表,比如通知列表、博客列表、链接列表等转换成数据视图,然后可以任意控制显示格式
数据视图可以从多个数据源取数据来显示,这里的数据源可以是子网站中的列表、可以是数据库中的记录、可以是其它网站的RSS源
数据视图可以实现分页、排序、查询、过滤等功能
数据视图可以利用 ddwrt:IfHasRights 实现权限的判断.....
基本的功能我就不说了,下面列出我在开发中觉得比较有用的、不太注意到的一些功能。
首先给出一个最简单的数据视图的代码:
![](https://ucc.alicdn.com/6cqkyzyy2svti/developer-article383455/20241017/a9f5bff0f3ed44bc9ab6d5a9ef2492bb.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实现权限控制:
![](https://ucc.alicdn.com/6cqkyzyy2svti/developer-article383455/20241017/a9f5bff0f3ed44bc9ab6d5a9ef2492bb.gif)
主要就是使用了IfHasRights(2)这个方法
方法的说明及其它方法的使用也可以在Sharepoint Designer的 XPath表达式生成器 中看到:
本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/12/19/1006161.html,如需转载请自行联系原作者