设为首页 收藏本站
查看: 1171|回复: 0

[经验分享] SharePoint 优化显示WebParts

[复制链接]

尚未签到

发表于 2015-9-24 08:59:57 | 显示全部楼层 |阅读模式
  
  在开发sharepoint中,经常遇到需要自定义显示列表中的一部分作为导航的内容, 如公告栏,新闻链接,最新动态等....
  
  我们通常需要显示一个列表的标题,并且限制字符长度, 外加一些条件,如按创建的时间倒序这样来显示最新的动态, 显示的时间也需要转换格式等...
  
  那我们来看看原始的列表如下图:

DSC0000.png
  
  修改后的效果:
DSC0001.png
  接下来我们用SPD打开这个站点,在sitepages里面新建一个页面, 命名为allexception, 这是个空白的页面, 然后点击插入显示表单
  我们需要显示显示多少行,找到<asp:Parameter Name="MaximumRows" DefaultValue="5"/> 这样我们就让行数限制在5行,另外我们在<xsl:variable name="RowLimit" select="5" />也修改成5
  我们还需要显示根据标题的长度 比喻小于18个字符的全部显示,大于18个字符的显示其中的一部分外加省略号..
另外根据条件,如Status的Approved显示绿色,Denied显示为红色.
如下是代码:



                <table border="0" cellspacing="0" width="100%">
<tr>
<td width="75%" class="ms-vb">
<a target="_blank" title="{@Title}">
<xsl:attribute name="href">http://liangji27/sites/charlie/Lists/Excemption%20Request/DispForm.aspx?ID=<xsl:value-of select="@ID"></xsl:value-of></xsl:attribute>
<xsl:if test="string-length(@Title)&lt;=18">
<xsl:if test="@Status='Approved'">
<font color="#7FFF00"><xsl:value-of select="@Title" /></font>
</xsl:if>
<xsl:if test="not(@Status='Approved')">
<font color="#FF0000"><xsl:value-of select="@Title" /></font>
</xsl:if>
</xsl:if>
<xsl:if test="string-length(@Title)&gt;18">
<xsl:if test="@Status='Approved'">
<font color="#7FFF00"><xsl:value-of select="substring(string(@Title),1,18)" />...</font>
</xsl:if>
<xsl:if test="not(@Status='Approved')">
<font color="#FF0000"><xsl:value-of select="substring(string(@Title),1,18)" />...</font>
</xsl:if>
</xsl:if>
</a>
</td>
<td width="25%" class="ms-vb">
<xsl:value-of select="substring(string(@Created_x0020_Date),4,10)"></xsl:value-of>
</td>
</tr>
</table>
  
  此处是将创建时间格式截取年月日:

<xsl:value-of select="substring(string(@Created_x0020_Date),4,10)"></xsl:value-of>
  以上是全部代码:



    <WebPartPages:DataFormWebPart runat="server" IsIncluded="True" AsyncRefresh="True" FrameType="None" NoDefaultStyle="TRUE" ViewFlag="8" Title="Exception Request" PageType="PAGE_NORMALVIEW" ListName="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}" Default="FALSE" DisplayName="Exception Request" __markuptype="vsattributemarkup" __WebPartId="{8516696D-C2F0-4A7A-944E-15C0553F2767}" id="g_8516696d_c2f0_4a7a_944e_15c0553f2767" pagesize="1" __AllowXSLTEditing="true" WebPart="true" Height="" Width="">
<DataSources>
<SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" UseServerDataFormat="true" selectcommand="&lt;View&gt;&lt;/View&gt;" id="Exception_x0020_Request2"><SelectParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}"/><asp:Parameter Name="StartRowIndex" DefaultValue="0"/><asp:Parameter Name="nextpagedata" DefaultValue="0"/><asp:Parameter Name="MaximumRows" DefaultValue="5"/>
</SelectParameters><DeleteParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}"/>
</DeleteParameters><UpdateParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}"/>
</UpdateParameters><InsertParameters><WebPartPages:DataFormParameter Name="ListID" ParameterKey="ListID" PropertyName="ParameterValues" DefaultValue="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}"/></InsertParameters>
</SharePoint:SPDataSource>
</DataSources>
<ParameterBindings>
<ParameterBinding Name="ListID" Location="None" DefaultValue="{93CF56B6-AD1C-43EB-A007-0EB087CBBD27}"/>
<ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
<ParameterBinding Name="ManualRefresh" Location="WPProperty[ManualRefresh]"/>
<ParameterBinding Name="UserID" Location="CAMLVariable" DefaultValue="CurrentUserName"/>
<ParameterBinding Name="Today" Location="CAMLVariable" DefaultValue="CurrentDate"/>
<ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue=""/>
<ParameterBinding Name="dvt_firstrow" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_nextpagedata" Location="Postback;Connection"/>
<ParameterBinding Name="dvt_1_form_editkey" Location="Postback;Connection"/>
</ParameterBindings>
<datafields>@Title,Title;@Approved,Approved;@Status,Status;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;@ItemChildCount,Item Child Count;@FolderChildCount,Folder Child Count;</datafields>
<XSL>
<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">
<xsl:output method="html" indent="no"/>
<xsl:decimal-format NaN=""/>
<xsl:param name="dvt_apos">'</xsl:param>
<xsl:param name="ManualRefresh"></xsl:param>
<xsl:param name="dvt_firstrow">1</xsl:param>
<xsl:param name="dvt_nextpagedata" />
<xsl:param name="dvt_1_form_editkey" />
<xsl:variable name="dvt_1_automode">1</xsl:variable>
<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">
<xsl:choose>
<xsl:when test="($ManualRefresh = 'True')">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<xsl:call-template name="dvt_1"/>
</td>
<td width="1%" class="ms-vb" valign="top">
<img src="/_layouts/images/staticrefresh.gif" id="ManualRefresh" border="0" onclick="javascript: {ddwrt:GenFireServerEvent('__cancel')}" alt="Click here to refresh the dataview."/>
</td>
</tr>
</table>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="dvt_1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="dvt_1">
<xsl:variable name="dvt_StyleName">Table</xsl:variable>
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
<xsl:variable name="dvt_RowCount" select="count($Rows)"/>
<xsl:variable name="RowLimit" select="5" />
<xsl:variable name="FirstRow" select="$dvt_firstrow" />
<xsl:variable name="LastRow" select="$FirstRow + $dvt_RowCount - 1" />
<xsl:variable name="IsEmpty" select="$dvt_RowCount = 0" />
<xsl:variable name="dvt_IsEmpty" select="$dvt_RowCount = 0"/>
<xsl:choose>
<xsl:when test="$dvt_IsEmpty">
<xsl:call-template name="dvt_1.empty"/>
</xsl:when>
<xsl:otherwise>
<table border="0" width="100%">
<xsl:call-template name="dvt_1.body">
<xsl:with-param name="Rows" select="$Rows"/>
<xsl:with-param name="FirstRow" select="1" />
<xsl:with-param name="LastRow" select="$LastRow - $FirstRow + 1" />
</xsl:call-template>
</table>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="dvt_1.commandfooter">
<xsl:with-param name="FirstRow" select="$FirstRow" />
<xsl:with-param name="LastRow" select="$LastRow" />
<xsl:with-param name="RowLimit" select="$RowLimit" />
<xsl:with-param name="dvt_RowCount" select="$dvt_RowCount" />
<xsl:with-param name="RealLastRow" select="number(ddwrt:NameChanged('',-100))" />
</xsl:call-template>
</xsl:template>
<xsl:template name="dvt_1.body">
<xsl:param name="Rows"/>
<xsl:param name="FirstRow" />
<xsl:param name="LastRow" />
<xsl:for-each select="$Rows">
<xsl:variable name="dvt_KeepItemsTogether" select="false()" />
<xsl:variable name="dvt_HideGroupDetail" select="false()" />
<xsl:if test="(position() &gt;= $FirstRow and position() &lt;= $LastRow) or $dvt_KeepItemsTogether">
<xsl:if test="not($dvt_HideGroupDetail)" ddwrt:cf_ignore="1">
<xsl:call-template name="dvt_1.rowview" />
<!--
<xsl:choose>
<xsl:when test="$dvt_1_form_editkey = ddwrt:EscapeDelims(string(@ID))">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
-->
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="dvt_1.rowview">
<tr>
<td>
<table border="0" cellspacing="0" width="100%">
<tr>
<td width="75%" class="ms-vb">
<a target="_blank" title="{@Title}">
<xsl:attribute name="href">http://liangji27/sites/charlie/Lists/Excemption%20Request/DispForm.aspx?ID=<xsl:value-of select="@ID"></xsl:value-of></xsl:attribute>
<xsl:if test="string-length(@Title)&lt;=18">
<xsl:if test="@Status='Approved'">
<font color="#7FFF00"><xsl:value-of select="@Title" /></font>
</xsl:if>
<xsl:if test="not(@Status='Approved')">
<font color="#FF0000"><xsl:value-of select="@Title" /></font>
</xsl:if>
</xsl:if>
<xsl:if test="string-length(@Title)&gt;18">
<xsl:if test="@Status='Approved'">
<font color="#7FFF00"><xsl:value-of select="substring(string(@Title),1,18)" />...</font>
</xsl:if>
<xsl:if test="not(@Status='Approved')">
<font color="#FF0000"><xsl:value-of select="substring(string(@Title),1,18)" />...</font>
</xsl:if>
</xsl:if>
</a>
</td>
<td width="25%" class="ms-vb">
<xsl:value-of select="substring(string(@Created_x0020_Date),4,10)"></xsl:value-of>
</td>
</tr>
</table>
</td>
</tr>
</xsl:template>
<xsl:template name="dvt_1.empty">
<xsl:variable name="dvt_ViewEmptyText">There are no items to show in this view.</xsl:variable>
<table border="0" width="100%">
<tr>
<td class="ms-vb">
<xsl:value-of select="$dvt_ViewEmptyText"/>
</td>
</tr>
</table>
</xsl:template>
<xsl:template name="dvt_1.commandfooter">
<xsl:param name="FirstRow" />
<xsl:param name="LastRow" />
<xsl:param name="RowLimit" />
<xsl:param name="dvt_RowCount" />
<xsl:param name="RealLastRow" />
</xsl:template>
</xsl:stylesheet>    </XSL>
</WebPartPages:DataFormWebPart>
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117985-1-1.html 上篇帖子: SharePoint 2010 使用”日历重叠“功能 下篇帖子: 配置SharePoint 2013 Search 拓扑结构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表