• 在MOSS中如何限制标题在首页上显示的长度?


          在MOSS相关的项目中,我们经常要将内容聚合到首页:比方说新闻、通知、文档等内容,由于首页内容相对较多,因此要对各部分内容显示的区域加以限制,才能保证整个页面布局的和谐与统一,限制标题显示的字符数,就成了一个必须的要求。MOSS的文档库和列表本身的试图并不提供本身的功能,所以要实现这样的功能就必须自己动手,一是写自己的webpart,取出库和列表的内容,然后按照自己的要求去展示内容,这种方法的优点是通用性强,并且可以将webpart写的更加通用些,一次投入就一直受益,适合有开发能力的公司或个人;这种方法在SPS2003下就有人做了相应的工作。
          那么,对于像我这样的专注于系统而没有开发经验的人来说,是不是就没有办法了呢?答案当然是否定的!在Sharepoint designer中,有一项神奇的功能,可以将MOSS的库和列表转换成XSLT数据视图,借助于XSLT,我们可以灵活的控制内容展示的形式。
          比如,我们想对这个列表的标题的字数加以限制,当字数<=12时,则显示全部的标题,如果字数>12,则截取前面的9个字,并在后面加上...
          在SPD中找到我们插入页面的库或列表,右键,选择转换成XSLT试图。
          对于列表,选择列表的标题,对应的XSL代码为:
            <xsl:value-of disable-output-escaping="no" select="@Title" />
          将代码替换为:
          <xsl:if test="string-length(@Title)&lt;=12">    判断如果标题的字符串长度是否<=12
                   <xsl:value-of disable-output-escaping="no" select="@Title" />    显示完整标题:select="@Title"
          </xsl:if>
          <xsl:if test="string-length(@Title)&gt;12">    判断如果标题的字符串长度是否>12
                   <xsl:value-of select="substring(string(@Title),1,9)" />...         显示标题的前9个字符,并在后面加上 ...
          </xsl:if>
          对于文档库,select的值不是标题,而是将文件名处理后的标题,代码如下:
          <xsl:value-of select="ddwrt:UrlBaseName(string(@LinkFilename))" />
          我们需要将对应的代码修改如下:
            <xsl:if test="string-length(@LinkFilename)&lt;=12">
                   <xsl:value-of select="ddwrt:UrlBaseName(string(@LinkFilename))" />
            </xsl:if>
            <xsl:if test="string-length(@LinkFilename)&gt;12">
                   <xsl:value-of select="substring(ddwrt:UrlBaseName(string(@LinkFilename)),1,9)" />...
            </xsl:if>

           美中不足的是,我发现代码中对于字符串的计数是不分全角半角的,统统按照一个计算,这样的话,如果标题或文件名中如果包含了半角的字母或数字,所显示的结果就不会如我们的想象一样,是一个固定的长度,不过,对于标题过长从而换行导致的布局问题,总算是解决了!
           注:文中标题部分的代码,参考了西安huahua同学在MOSS群中的讨论,才使得我对这个问题有了一个完整的认识,在此表示感谢!

         

  • 相关阅读:
    浅谈三层架构
    尺度空间(Scale space)理论
    漫游Kafka实现篇之消息和日志
    杭电 2095
    .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 最小乘积(提高型)
  • 原文地址:https://www.cnblogs.com/bower/p/1107028.html
Copyright © 2020-2023  润新知