I would like to change database column names of a BDC list webpart using an XSL file.
My SQL query is "Select BATCH_ID..."
, I want to change that column name "BATCH_ID"
to "ID"
using XSL. I also want to know how $ColName_0
is getting populated with the value 'BATCH_ID'
?
Inside the dvt.headerfield
template it is sorting and adding sort menu. But $ColName_0
is populated before that template is called. XSLT code is following:
<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>