0

我想使用 XSL 文件更改 BDC 列表 Web 部件的数据库列名称。

我的 SQL 查询是"Select BATCH_ID...",我想将该列名更改"BATCH_ID""ID"使用 XSL。我还想知道如何$ColName_0填充该值'BATCH_ID'

dvt.headerfield模板内部,它是排序和添加排序菜单。但是$ColName_0在调用该模板之前填充。XSLT 代码如下:

<xsl:stylesheet 
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
  xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:SharePoint="Microsoft.Sharepoint.WebControls"
  exclude-result-prefixes="xsl msxsl ddwrt"
>
  <xsl:output method="xml" indent="yes"/>
  <xsl:param name="dvt_partguid" />
  <xsl:param name="ColName_0"></xsl:param>

  <xsl:template name="dvt.headerfield">
    <xsl:param name="fieldname" />
    <xsl:param name="fieldtitle" />
    <xsl:param name="displayname" />
    <xsl:param name="fieldtype">0</xsl:param>

    <table CtxNum="1" cellspacing="0" class="ms-unselectedtitle" onmouseover="OnMouseOverAdHocFilter(this, '{concat($displayname,$fieldname, $fieldtype, $dvt_partguid)}')">
      <tr>
        <td width="100%" class="ms-vb" nowrap="">
          <a>
            <xsl:attribute name="href">javascript: <xsl:value-of select="ddwrt:GenFireServerEvent(('dvt_sortfield;dvt_sortdir'))" />;</xsl:attribute>
            <xsl:value-of select="$fieldtitle"/>
          </a>                  
        </td>
        <td>
          <img src="/_layouts/images/blank.gif" width="13" style="visibility: hidden" alt="" />
        </td>
      </tr>
    </table>
  </xsl:template>

  <xsl:template match="/">
    <xsl:call-template name="dvt_1" />
  </xsl:template>

  <xsl:template name="dvt_1">
    <xsl:variable name="dvt_StyleName">Table</xsl:variable>

    <table id="BdwpRows" border="0" width="100%" cellpadding="2" cellspacing="0">
      <tr valign="top">
        <th class="ms-vh" width="1" />
        <th class="ms-vh" align="left">
          <xsl:call-template name="dvt.headerfield" ddwrt:atomic="1">
            <xsl:with-param name="fieldname">@BATCH_ID</xsl:with-param>
            <xsl:with-param name="fieldtitle">
              <xsl:value-of select="$ColName_0" />
            </xsl:with-param>
            <xsl:with-param name="displayname">
              <xsl:value-of select="$ColName_0" />
            </xsl:with-param>
            <xsl:with-param name="fieldtype">text</xsl:with-param>
          </xsl:call-template>
        </th>
      </tr>         
    </table>
  </xsl:template>
</xsl:stylesheet>
4

1 回答 1

0

不确定这是最好的方法,但我是这样做的:

改变:

<xsl:with-param name="fieldname">@BATCH_ID</xsl:with-param> 
    <xsl:with-param name="fieldtitle"> 
        <xsl:value-of select="$ColName_0" /> 
    </xsl:with-param> 
    <xsl:with-param name="displayname"> 
        <xsl:value-of select="$ColName_0" /> 
    </xsl:with-param> 
<xsl:with-param name="fieldtype">text</xsl:with-param> 

到:

<xsl:with-param name="fieldname">@BATCH_ID</xsl:with-param> 
    <xsl:with-param name="fieldtitle"> 
        ID 
    </xsl:with-param> 
    <xsl:with-param name="displayname"> 
        <xsl:value-of select="$ColName_0" /> 
    </xsl:with-param> 
<xsl:with-param name="fieldtype">text</xsl:with-param> 
于 2010-02-16T21:39:19.943 回答