Webpart中的XSLT并按大家想要的艺术表现数据,Library转换为了DataView

      MOSS中有四个格外主要的预制构件叫Documents
Library,它本身提供了功能相比强硬的文书档案管理功用,包含文书档案的上传下载、权限管理、在线编辑等,而且借助于如下图所示的下拉菜单,大家可以独立保管Documents
Library中的每一个独自的文书。 

      驾驭MOSS开发的人都晓得MOSS中提供了壹种用来拓展多少展现的Webpart,它能够让开发职员在不需求编写制定1行代码的底子上轻松地从List中取出数据,并以一定的格式将数据浮未来页面上,那正是MOSS中用途充裕普遍的DataView
Webpart。暗中同意的DataView
Webpart总是以平素的格式突显数据,如按记录逐行展现数据、包蕴表格的标题栏、交替行背景观等。不过,大家得以行使XSLT来控制数据的来得样式,因为在MOSS中,List中的数据最终是以XML的款式储存在数据库中的,而DataView
Webpart对XML数据举行明白析,并应用XSLT格式化了XML数据。当您使用Sharepoint
Designer编辑二个Sharepoint页面时,你就能够观察DataView
Webpart在页面上所采纳的号子了,在这之中就含有了要格式化数据的XSLT代码,只要大家将符合供给的XSLT代码编辑好后替换上去,DataView
Webpart就足以依照大家的主意来表现数据。本文将结合实际例子讲解一下哪些编写DataView
Webpart中的XSLT并按大家想要的诀窍表现数据。
      下图是二个MOSS网址的暗中同意示例,暗中认可意况下,当您安装完MOSS
2007后,总是能够透过IIS访问那个示例站点,为了节省创立Web
Application和Site Collection的年华,大家直接用那些事例来拓呈出现说法。

图片 1      我在http://www.cnblogs.com/jaxu/archive/2009/08/18/1548259.html一文中等教育授了哪些通过XSLT来定制DataView
Webpart的数据呈现样式,事实上,DataView Webpart和Documents
Library是能够相互转换的,大家在Sharepoint Designer中开辟三个富含Webpart
Zone的页面,将七个Documents Library拖放到Webpart
Zone所在的区域,Sharepoint Designer就早已协助大家将Documents
Library转换为了DataView
Webpart,然后大家能够回去页面上编写制定当中的XSLT来定制Documents
Library的多寡呈现样式。小编在前边那篇小说中所做的例证正是那样成功的,可是那里面设有八个题材,这也是成都百货上千MOSS初学者碰着的四个疑忌!
      我们密切查看上边的那张截图,你会意识MOSS中暗中认可的Documents
Library在个中每3个文书档案的名称上添加了七个变迁的下拉菜单,此中饱含了重重MOSS提供的文书档案操作作用,如本文开篇所涉嫌的那么些成效。当您将Documents Library转换为DataView
Webpart后那个效果便丢掉了,为啥呢?大概有读者会说,那小编得以应用XSLT和Javascript自身再写3个出来!笔者很钦佩你的胆气,但自我会劝你在入手做那件一般很复杂的行事此前认真想想一下,既然MOSS已经提供了这么丰硕的功用,小编想微软的那多少个工程师不会傻到让用户自身去编写这么1个看起来通用性很强的事物。事实上,要在DataView
Webpart中定制那样三个item的变通通菜单你差不多都不用本人去入手写壹行代码!
      上边就让大家来探望那是怎样兑现的!
      既然MOSS暗许的Documents
Library已经包涵了那个意义,那我们无妨先在页面上添加三个Documents
Library看看。下图是你在页面上添加Web
Parts时所要选的连串——Documents。请留心不要在Sharepoint
Designer中平素拖放Documents Library,因为那样Sharepoint
Designer会自动实行DataView Webpart的转换,但那并不是大家想要的。 

图片 2

图片 3       添加完后页面上会出现Documents
Library的内容,如下图所示,但暗许情况下特别下拉菜单是不会油不过生的。这一年你能够进到Webpart的编排状态,如下图。你相会到左侧有3个Selected
View下拉列表,当中是List
Views的多少个不等的视图,当前默许的视图是不蕴含那多少个下拉菜单成效的。你能够试着改变一下视图,然后看看页面上的Documents
Library会爆发哪些变化。在此间我们选用All
Documents视图,点击OK,然后非凡下拉菜单就展现出来了。

      
图中付出了我们要贯彻的职能(即图中所标示的修改后的体裁),为了以示区别,笔者将DataView
Webpart原始的规范也显示出来了。笔者所使用的数据源就是当下站点下自带的Documents(其实Documents也是1种List),上海教室中标示为原本样式的区域就是该Documents中多少的默许展现样式。
      好!今后让大家来探视怎么样贯彻数量突显样式的改动。
      首先在Sharepoint
Designer中开拓当前站点下要编写制定的页面,对本例而言就是根站点下的Default.aspx页面。如下图,将Documents拖放到页面上Webpart
Zone所在的区域,DataView
Webpart会默许将该Documents下的享有数据呈现出来,并且只展示默许的几列,未来从不供给去修改那几个设置,因为稍后大家会对内部的XSLT实行编写制定,突显大家想要的多少。在Sharepoint
Designer中添加完DataView Webpart后保存即可!

图片 4

图片 5

图片 6       然后我们必要在Sharepoint
Designer中校多余的列去掉,我们只想保留Type和Name,并去掉表头和脚注。如下图,在Sharepoint
Designer中大家率先要将Documents
Library转换为DataView,那几个手续必须在后面所说的步子之后,因为那样的话那个下拉菜单的功力就会被封存。

      关闭打开的页面,在浏览器中刷新页面,将会看出大家在Sharepoint
Designer中所做的改动,此时大家得以一贯在页面上海展览中心开编辑。对本例而言,大家将方面3个DataView
Webpart的XSLT代码拷贝出来举行编写制定。事实上任何一种文本编辑器都足以编写XSLT代码,不过作者引入应用Visual
Studio,因为它不仅能够使代码格式看起来舒服,而且还提供了语法高亮呈现和智能感知效用,你只供给在Visual
Studio中新建三个xslt文件,将前方拷贝出来的代码粘贴进去就足以了。好,未来我们起首工编织制XSLT代码。
      上面是原始XSLT代码,笔者将它贴出来让读者开始展览参考。  

图片 7       转换完毕后,在下图所示的菜单中选用艾德it
Columns,在弹出的对话框中去掉多余的列。

  1 <xsl:stylesheet xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” version=”1.0″ exclude-result-prefixes=”xsl msxsl ddwrt” xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:SharePoint=”Microsoft.SharePoint.WebControls” xmlns:ddwrt2=”urn:frontpage:internal”>
  2     <xsl:output method=”html” indent=”no”/>
  3     <xsl:decimal-format NaN=””/>
  4     <xsl:param name=”dvt_apos”>'</xsl:param>
  5     <xsl:param name=”dvt_firstrow”>1</xsl:param>
  6     <xsl:param name=”dvt_nextpagedata” />
  7     <xsl:variable name=”dvt_1_automode”>0</xsl:variable>
  8     
  9     <xsl:template match=”/” xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:SharePoint=”Microsoft.SharePoint.WebControls”>
 10         <xsl:call-template name=”dvt_1″/>
 11     </xsl:template>
 12     
 13     <xsl:template name=”dvt_1″>
 14         <xsl:variable name=”dvt_StyleName”>Table</xsl:variable>
 15         <xsl:variable name=”Rows” select=”/dsQueryResponse/Rows/Row”/>
 16         <xsl:variable name=”dvt_RowCount” select=”count($Rows)” />
 17         <xsl:variable name=”RowLimit” select=”10″ />
 18         <xsl:variable name=”FirstRow” select=”$dvt_firstrow” />
 19         <xsl:variable name=”LastRow” select=”$FirstRow + $dvt_RowCount – 1″ />
 20         <xsl:variable name=”IsEmpty” select=”$dvt_RowCount = 0″ />
 21         <table border=”0″ width=”100%” cellpadding=”2″ cellspacing=”0″>
 22             <tr valign=”top”>
 23                 <xsl:if test=”$dvt_1_automode = ‘1’” ddwrt:cf_ignore=”1″>
 24                     <th class=”ms-vh” width=”1%” nowrap=”nowrap”></th>
 25                 </xsl:if>
 26                 <th class=”ms-vh” nowrap=””>Name (for use in forms)</th>
 27                 <th class=”ms-vh” nowrap=””>URL Path</th>
 28                 <th class=”ms-vh” nowrap=””>Modified By</th>
 29                 <th class=”ms-vh” nowrap=””>Modified</th>
 30             </tr>
 31             <xsl:call-template name=”dvt_1.body”>
 32                 <xsl:with-param name=”Rows” select=”$Rows”/>
 33                 <xsl:with-param name=”FirstRow” select=”1″ />
 34                 <xsl:with-param name=”LastRow” select=”$dvt_RowCount” />
 35             </xsl:call-template>
 36         </table>
 37         <xsl:call-template name=”dvt_1.commandfooter”>
 38             <xsl:with-param name=”FirstRow” select=”$FirstRow” />
 39             <xsl:with-param name=”LastRow” select=”$LastRow” />
 40             <xsl:with-param name=”RowLimit” select=”$RowLimit” />
 41             <xsl:with-param name=”dvt_RowCount” select=”$dvt_RowCount” />
 42             <xsl:with-param name=”RealLastRow” select=”number(ddwrt:NameChanged(”,-100))” />
 43         </xsl:call-template>
 44     </xsl:template>
 45     <xsl:template name=”dvt_1.body”>
 46         <xsl:param name=”Rows”/>
 47         <xsl:param name=”FirstRow” />
 48         <xsl:param name=”LastRow” />
 49         <xsl:for-each select=”$Rows”>
 50             <xsl:variable name=”dvt_KeepItemsTogether” select=”false()” />
 51             <xsl:variable name=”dvt_HideGroupDetail” select=”false()” />
 52             <xsl:if test=”(position() >= $FirstRow and position() <= $LastRow) or $dvt_KeepItemsTogether”>
 53                 <xsl:if test=”not($dvt_HideGroupDetail)” ddwrt:cf_ignore=”1″>
 54                     <xsl:call-template name=”dvt_1.rowview” />
 55                 </xsl:if>
 56             </xsl:if>
 57         </xsl:for-each>
 58         
 59     </xsl:template>
 60     <xsl:template name=”dvt_1.rowview”>
 61         <tr>
 62             <xsl:if test=”position() mod 2 = 1″>
 63                 <xsl:attribute name=”class”>ms-alternating</xsl:attribute>
 64             </xsl:if>
 65             <xsl:if test=”$dvt_1_automode = ‘1’” ddwrt:cf_ignore=”1″>
 66                 <td class=”ms-vb” width=”1%” nowrap=”nowrap”>
 67                     <span ddwrt:amkeyfield=”ID” ddwrt:amkeyvalue=”ddwrt:EscapeDelims(string(@ID))” ddwrt:ammode=”view”></span>
 68                 </td>
 69             </xsl:if>
 70             <td class=”ms-vb”>
 71                 <xsl:value-of select=”@FileLeafRef”/>
 72             </td>
 73             <td class=”ms-vb”>
 74                 <a href=”{@FileRef}”>
 75                     <xsl:value-of select=”@FileRef”/>
 76                 </a>
 77             </td>
 78             <td class=”ms-vb”>
 79                 <xsl:value-of select=”@Editor” disable-output-escaping=”yes”/>
 80             </td>
 81             <td class=”ms-vb”>
 82                 <xsl:value-of select=”ddwrt:FormatDate(string(@Modified), 1033, 5)”/>
 83             </td>
 84         </tr>
 85     </xsl:template>
 86     <xsl:template name=”dvt_1.commandfooter”>
 87         <xsl:param name=”FirstRow” />
 88         <xsl:param name=”LastRow” />
 89         <xsl:param name=”RowLimit” />
 90         <xsl:param name=”dvt_RowCount” />
 91         <xsl:param name=”RealLastRow” />
 92         <table cellspacing=”0″ cellpadding=”4″ border=”0″ width=”100%”>
 93             <tr>
 94                 <xsl:if test=”$FirstRow > 1 or $dvt_nextpagedata”>
 95                     <xsl:call-template name=”dvt_1.navigation”>
 96                         <xsl:with-param name=”FirstRow” select=”$FirstRow” />
 97                         <xsl:with-param name=”LastRow” select=”$LastRow” />
 98                         <xsl:with-param name=”RowLimit” select=”$RowLimit” />
 99                         <xsl:with-param name=”dvt_RowCount” select=”$dvt_RowCount” />
100                         <xsl:with-param name=”RealLastRow” select=”$RealLastRow” />
101                     </xsl:call-template>
102                 </xsl:if>
103             </tr>
104         </table>
105     </xsl:template>
106     <xsl:template name=”dvt_1.navigation”>
107         <xsl:param name=”FirstRow” />
108         <xsl:param name=”LastRow” />
109         <xsl:param name=”RowLimit” />
110         <xsl:param name=”dvt_RowCount” />
111         <xsl:param name=”RealLastRow” />
112         <xsl:variable name=”PrevRow”>
113             <xsl:choose>
114                 <xsl:when test=”$FirstRow – $RowLimit < 1″>1</xsl:when>
115                 <xsl:otherwise>
116                     <xsl:value-of select=”$FirstRow – $RowLimit” />
117                 </xsl:otherwise>
118             </xsl:choose>
119         </xsl:variable>
120         <xsl:variable name=”LastRowValue”>
121             <xsl:choose>
122                 <xsl:when test=”$LastRow > $RealLastRow”>
123                     <xsl:value-of select=”$LastRow”></xsl:value-of>
124                 </xsl:when>
125                 <xsl:otherwise>
126                     <xsl:value-of select=”$RealLastRow”></xsl:value-of>
127                 </xsl:otherwise>
128             </xsl:choose>
129         </xsl:variable>
130         <xsl:variable name=”NextRow”>
131             <xsl:value-of select=”$LastRowValue + 1″></xsl:value-of>
132         </xsl:variable>
133         <td nowrap=”” class=”ms-paging” align=”right”>
134             <xsl:if test=”$dvt_firstrow > 1″ ddwrt:cf_ignore=”1″>
135                 <a>
136                 <xsl:attribute name=”href”>javascript: <xsl:value-of select=”ddwrt:GenFireServerEvent(‘dvt_firstrow={1};dvt_startposition={}’)” />;</xsl:attribute>
137                 Start</a>
138                 <xsl:text disable-output-escaping=”yes” ddwrt:nbsp-preserve=”yes”>&nbsp;</xsl:text>
139                 <a>
140                 <xsl:attribute name=”href”>javascript: history.back();</xsl:attribute>
141                 <img src=”/_layoutsprev.gif” border=”0″ alt=”Previous” />
142                 </a>
143                 <xsl:text disable-output-escaping=”yes” ddwrt:nbsp-preserve=”yes”>&nbsp;</xsl:text>
144             </xsl:if>
145             <xsl:value-of select=”$FirstRow” />
146              – <xsl:value-of select=”$LastRowValue” />
147             <xsl:text xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime” ddwrt:nbsp-preserve=”yes” disable-output-escaping=”yes”>&nbsp;</xsl:text>
148             <xsl:if test=”$LastRowValue < $dvt_RowCount or string-length($dvt_nextpagedata)!=0″ ddwrt:cf_ignore=”1″>
149                 <a>
150                 <xsl:attribute name=”href”>javascript: <xsl:value-of select=”ddwrt:GenFireServerEvent(concat(‘dvt_firstrow={‘,$NextRow,’};dvt_startposition={‘,$dvt_nextpagedata,’}’))” />;</xsl:attribute>
151                 <img src=”/_layoutsnext.gif” border=”0″ alt=”Next” />
152                 </a>
153             </xsl:if>
154         </td>
155     </xsl:template>
156                         </xsl:stylesheet>    

图片 8

      首先大家删掉不想浮现的列,然后添加我们想要呈现的列,并去掉默许添加的标题栏。其余,由于Documents中的数据太多而发出了分页,我们能够看到自动生成的代码中有众多是用来处理分页的,假设你不要求分页,你完全能够把那1部分代码删掉。
      暗中同意处境下数据会在1列上彰显,以后我们要将数据呈今后两列上。查看DataView
Webpart私下认可生成的XSLT,大家会发现数目都以显得在2个Table中的,那么要将壹列数据展现为两列只需求在除第一行外的奇数行后边插入</tr><tr>标记即可。然而</tr><tr>标记无法直接写在XSLT代码中,因为只要那样的话XSLT认为代码中存在尚未关闭的HTML标签而存在语法错误,所以大家不得不通过变量来浮现标签,并安装value-of的disable-output-escaping属性的值为yes将变量所提示的标签应用到页面上。下边是因此改动后的代码。

图片 9

 1 <xsl:stylesheet xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” version=”1.0″ exclude-result-prefixes=”xsl msxsl ddwrt” xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:SharePoint=”Microsoft.SharePoint.WebControls” xmlns:ddwrt2=”urn:frontpage:internal”>
 2     <xsl:output method=”html” indent=”no”/>
 3     <xsl:decimal-format NaN=””/>
 4     <xsl:param name=”dvt_apos”>'</xsl:param>
 5     <xsl:variable name=”dvt_1_automode”>0</xsl:variable>
 6     <xsl:template match=”/” xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:SharePoint=”Microsoft.SharePoint.WebControls”>
 7         <xsl:call-template name=”dvt_1″/>
 8     </xsl:template>
 9 
10     <xsl:template name=”dvt_1″>
11         <xsl:variable name=”dvt_StyleName”>Table</xsl:variable>
12         <xsl:variable name=”Rows” select=”/dsQueryResponse/Rows/Row”/>
13         <table border=”0″ width=”100%” cellpadding=”2″ cellspacing=”0″>
14             <xsl:call-template name=”dvt_1.body”>
15                 <xsl:with-param name=”Rows” select=”$Rows”/>
16             </xsl:call-template>
17         </table>
18     </xsl:template>
19 
20     <xsl:variable name=”strTrLeft” select=”‘<tr>'”/>
21     <xsl:variable name=”strTrRight” select=”‘</tr>'”/>
22 
23     <xsl:template name=”dvt_1.body”>
24         <xsl:param name=”Rows”/>
25         <xsl:value-of select=”$strTrLeft” disable-output-escaping=”yes”/>
26         <xsl:for-each select=”$Rows”>
27             <xsl:call-template name=”dvt_1.rowview”/>
28         </xsl:for-each>
29         <xsl:value-of select=”$strTrRight” disable-output-escaping=”yes”/>
30     </xsl:template>
31 
32     <xsl:template name=”dvt_1.rowview”>
33         <xsl:if test=”position() > 1 and position() mod 2 = 1″>
34             <xsl:value-of select=”$strTrRight” disable-output-escaping=”yes”/>
35             <xsl:value-of select=”$strTrLeft” disable-output-escaping=”yes”/>
36         </xsl:if>
37         <td>
38             <IMG BORDER=”0″ ALT=”{@FileLeafRef}” title=”{@FileLeafRef}” SRC=”/_layouts{ddwrt:MapToIcon(string(@DocIcon), string(@DocIcon))}” />
39         </td>
40         <td class=”ms-vb”>
41             <a href=”{@FileRef}” target=”_blank”>
42                 <xsl:value-of select=”@FileLeafRef”/>
43             </a>
44         </td>
45     </xsl:template>
46 </xsl:stylesheet>

       暗许情状下Documents
Library包罗分页数据,我们得以遵从下图所示的步子将分页功效去掉。

      有几个须要留意的地点:
      一.
大家经过for-each循环$Rows变量中的数据,也等于逐行读取数据,大家对每壹行数据进行格式化输出。position()函数作为for-each循环中的计数器,能够用来提醒当前循环到第几条记下了。
      贰.
变量strTrLeft和变量strTrRight分别用来输出</tr>和<tr>,实行换行。注意value-of的disable-output-escaping属性的值。
      三.
大家来得了Documents每条记下的两个字段的值,第二个是意味文书档案类型的图标,首个是用来打开文书档案的超链接,注意一下中间的引用方法,尤其是怎么获得文书档案类型的图标。
      最终大家要做1个小的界定,那正是要是要显示的数目超越三行则只在页面上显得叁行,并付出View
More超链接。
其实这几个就极粗略啦,大家先是判断一下position()的值,若是大于6则不展现,然后根据规则在报表的末行彰显七个View
More得超链接就行了,上边是透过修改后的代码。

图片 10       完结后保存页面,回到浏览器中刷新页面,你应该能够见见如下图所示的界面。今后就只剩下表头和脚注了,那些须求借助XSLT来促成。进入Webpart的编排状态,将在这之中的XSLT代码拷贝到Visual
Studio中。

 1 <xsl:stylesheet xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” version=”1.0″ exclude-result-prefixes=”xsl msxsl ddwrt” xmlns:ddwrt=”http://schemas.microsoft.com/WebParts/v2/DataView/runtime” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:SharePoint=”Microsoft.SharePoint.WebControls” xmlns:ddwrt2=”urn:frontpage:internal”>
 2     <xsl:output method=”html” indent=”no”/>
 3     <xsl:decimal-format NaN=””/>
 4     <xsl:param name=”dvt_apos”>'</xsl:param>
 5     <xsl:variable name=”dvt_1_automode”>0</xsl:variable>
 6     <xsl:template match=”/” xmlns:x=”http://www.w3.org/2001/XMLSchema” xmlns:d=”http://schemas.microsoft.com/sharepoint/dsp” xmlns:asp=”http://schemas.microsoft.com/ASPNET/20” xmlns:__designer=”http://schemas.microsoft.com/WebParts/v2/DataView/designer” xmlns:SharePoint=”Microsoft.SharePoint.WebControls”>
 7         <xsl:call-template name=”dvt_1″/>
 8     </xsl:template>
 9 
10     <xsl:template name=”dvt_1″>
11         <xsl:variable name=”dvt_StyleName”>Table</xsl:variable>
12         <xsl:variable name=”Rows” select=”/dsQueryResponse/Rows/Row”/>
13         <table border=”0″ width=”100%” cellpadding=”2″ cellspacing=”0″>
14             <xsl:call-template name=”dvt_1.body”>
15                 <xsl:with-param name=”Rows” select=”$Rows”/>
16             </xsl:call-template>
17         </table>
18     </xsl:template>
19 
20     <xsl:variable name=”strTrLeft” select=”‘<tr>'”/>
21     <xsl:variable name=”strTrRight” select=”‘</tr>'”/>
22 
23     <xsl:template name=”dvt_1.body”>
24         <xsl:param name=”Rows”/>
25         <xsl:value-of select=”$strTrLeft” disable-output-escaping=”yes”/>
26         <xsl:for-each select=”$Rows”>
27             <xsl:if test=”position() <= 6″>
28                 <xsl:call-template name=”dvt_1.rowview”/>
29             </xsl:if>
30             <xsl:call-template name=”showmore”>
31                 <xsl:with-param name=”i” select=”position()”/>
32             </xsl:call-template>
33         </xsl:for-each>
34         <xsl:value-of select=”$strTrRight” disable-output-escaping=”yes”/>
35     </xsl:template>
36 
37     <xsl:template name=”dvt_1.rowview”>
38         <xsl:if test=”position() > 1 and position() mod 2 = 1″>
39             <xsl:value-of select=”$strTrRight” disable-output-escaping=”yes”/>
40             <xsl:value-of select=”$strTrLeft” disable-output-escaping=”yes”/>
41         </xsl:if>
42         <td>
43             <IMG BORDER=”0″ ALT=”{@FileLeafRef}” title=”{@FileLeafRef}” SRC=”/_layouts{ddwrt:MapToIcon(string(@DocIcon), string(@DocIcon))}” />
44         </td>
45         <td class=”ms-vb”>
46             <a href=”{@FileRef}” target=”_blank”>
47                 <xsl:value-of select=”@FileLeafRef”/>
48             </a>
49         </td>
50     </xsl:template>
51 
52     <xsl:template name=”showmore”>
53         <xsl:param name=”i”/>
54         <xsl:if test=”$i = 6 + 1″>
55             <xsl:value-of select=”$strTrRight” disable-output-escaping=”yes”/>
56             <xsl:value-of select=”$strTrLeft” disable-output-escaping=”yes”/>
57             <td align=”right” colspan=”4″ class=”ms-vb”>
58                 <a href=”../Documents/Forms/AllItems.aspx” target=”_blank”>View more</a>
59             </td>
60         </xsl:if>
61     </xsl:template>
62 </xsl:stylesheet>

图片 11      
如下图,将图中所标示的代码段删掉,然后将盈余的代码段拷贝到Webpart中并保留页面,即落成了全副Documents
Library的转换工作。

      注意一下View More链接的地方!
      其实任何进程相当简单。由于DataView
Webpart自动生成的XSLT有其稳定的格式,大家在自定义的时候可以在它的底子之上实行操作,借使对中间一些样式的利用方法素不相识的话能够参见那三个自动生成的标志的写法,如本例中的文档类型图标,笔者便是参照了DataView
Webpart暗中认可生成的记号。

图片 12

图片 13      整个经过大致从不让用户本人去写壹行代码,就完事了将Documents
Library转换为DataView
Webpart的办事,并对内部的数目体现样式实行了转移。
      MOSS自个儿已经提供了功能万分有力的页面定制作用,借助于Sharepoint
Designer那些工具,大家得以不费吹灰之力地成功许多开销职责。 

相关文章