zoukankan      html  css  js  c++  java
  • 自定义View字段表头

    适用场景:

    三个列表进行Join,然后试图上显示ProjectedField,而ProjectedField不支持设置DisplayName.默认只能显示英文名。

    join caml如下:

    <View>
    <Query>
        <OrderBy>
          <FieldRef Name="ID" />
        </OrderBy>
      </Query>
      <ViewFields>
        <FieldRef Name="Attachments" />
        <FieldRef Name="LinkTitle" />
        <FieldRef Name="FirstName" />
        <FieldRef Name="Company" />
        <FieldRef Name="WorkPhone" />
        <FieldRef Name="HomePhone" />
        <FieldRef Name="Email" />
        <FieldRef Name="TuMuLookup" />
        <FieldRef Name="ZhuanYe" />
      </ViewFields>
      <Joins>
        <Join Type="LEFT" ListAlias="TuMu">
          <Eq>
            <FieldRef Name="TuMuLookup" RefType="ID" />
            <FieldRef List="TuMu" Name="ID" />
          </Eq>
        </Join>
        <Join Type="LEFT" ListAlias="ZhuanYe">
          <Eq>
            <FieldRef List="TuMu" Name="ZhuanYeLookup" RefType="Id" />
            <FieldRef List="ZhuanYe" Name="ID" />
          </Eq>
        </Join>
      </Joins>
      <ProjectedFields>
        <Field List="ZhuanYe" Type="Lookup" Name="ZhuanYe" ShowField="Title" />
      </ProjectedFields>
      <XslLink Default="TRUE">main.xsl</XslLink>
      <RowLimit Paged="TRUE">30</RowLimit>
      <Toolbar Type="Standard" />
    </View>
    

    解决方法:

    采用自定义xsl来解决。

    1)在layouts/xsl下增加一个xsl文件:xsl_zhuanye.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" encoding="uft-8" />
      <xsl:include href="/_layouts/xsl/main.xsl" />
      <xsl:include href="/_layouts/xsl/internal.xsl" />
      <xsl:decimal-format NaN="" />
      <xsl:template match="/">  
        <xsl:apply-templates mode="RootTemplate" select="$XmlDefinition" />        
        <hr/>
      </xsl:template>
      <xsl:template name="FieldRef_header.ZhuanYe" match="FieldRef[@Name='ZhuanYe']" mode="header">
        <th nowrap="" scope="col" onmouseover="OnChildColumn(this)" class="ms-vh2">
          <div class="ms-vh-div">   
            专业
          </div>
        </th>
      </xsl:template>
    </xsl:stylesheet>
    

    备注:<xsl:template match="/"> 模板可以删掉

    2)修改列表webpart属性,这是其Xsl链接为/_layouts/xsl/xsl_zhuanye.xsl

    3)iisreset清除视图xsl缓存。

  • 相关阅读:
    openfiler的介绍与使用
    linux磁盘修复(home或者其他目录无法进入,系统进入emergency mode)
    安装centos系统时出现dracut-initqueue time out 报错
    Linux中sz与rz命令
    /etc/passwd与/etc/shadow
    两台设备做DNS主从同步部署(含正向解析与方向解析)
    通过xftp传输文件失败的解决方法
    /etc/hosts与/etc/resolv.conf区别
    /etc/nsswitch.conf配置文件--服务搜索顺序
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/3785774.html
Copyright © 2011-2022 走看看