Export (0) Print
Expand All

XmlDataSource.Transform Property

Gets or sets a block of Extensible Stylesheet Language (XSL) data that defines an XSLT transformation to be performed on the XML data managed by the XmlDataSource control.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

[TypeConverterAttribute("System.ComponentModel.MultilineStringConverter,System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
[PersistenceModeAttribute(PersistenceMode.InnerProperty)]
public virtual string Transform { get; set; }
<asp:XmlDataSource>
	<Transform>String</Transform>
</asp:XmlDataSource>

Property Value

Type: System.String
A string of inline XSL that defines an XML transformation to be performed on the data contained in the Data or DataFile properties. The default value is String.Empty.

ExceptionCondition
InvalidOperationException

The document is loading.

In declarative scenarios, the Transform property is specified as a multiline inner property of the XmlDataSource object. An inner property is compatible with XSL style sheet data, because it enables you to format the style sheet in any way and ignore character padding issues such as padding quote characters.

If both the TransformFile and Transform properties are set, the TransformFile property takes precedence and the data in the XSL style sheet file (.xsl) is used instead of the style sheet elements specified in the Transform property. If an XPath expression is set using the XPath property, it is applied after the XML data is transformed.

If you change the value of the Transform property, the DataSourceChanged event is raised. If caching is enabled and you change the value of Transform, the cache is invalidated.

NoteNote

The XmlDataSource class uses the deprecated XslTransform class to perform XSL transformations. If you want to use style sheet features that were introduced after the XslTransform class was deprecated, apply the transforms manually by using the XslCompiledTransform class.

The following code example demonstrates how to use an XmlDataSource control with a templated Repeater control to display transformed XML data. The style sheet that performs the transformation is defined inline by the Transform property of the data source control.


<%@ Page  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Order</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:XmlDataSource
        runat="server"
        id="XmlDataSource1"
        DataFile="order.xml" >
        <Transform>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:template match="orders">
            <orders>
              <xsl:apply-templates select="order"/>
            </orders>
          </xsl:template>
          <xsl:template match="order">
            <order>
            <customer>
              <id>
                <xsl:value-of select="customer/@id"/>
              </id>
              <firstname>
                <xsl:value-of select="customername/firstn"/>
              </firstname>
              <lastname>
                <xsl:value-of select="customername/lastn"/>
              </lastname>
            </customer>
            </order>
          </xsl:template>
          </xsl:stylesheet>
        </Transform>
      </asp:XmlDataSource>

      <asp:Repeater
        runat="server"
        DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <h2>Order</h2>
            <table border="1px">
              <tr>
                <td>Customer</td>
                <td style="color:Blue"><%# XPath ("//id") %></td>
                <td><%# XPath ("//firstname") %></td>
                <td><%# XPath ("//lastname") %></td>
              </tr>
            </table>
            <hr />
        </ItemTemplate>
    </asp:Repeater>

  </form>
  </body>
</html>


The XML file in the code example has the following data:

<?xml version="1.0" encoding="iso-8859-1"?>
 <orders>
   <order>
     <customer id="12345" />
     <customername>
         <firstn>Todd</firstn>
         <lastn>Rowe</lastn>
     </customername>
     <transaction id="12345" />
     <shipaddress>
         <address1>1234 Tenth Avenue</address1>
         <city>Bellevue</city>
         <state>Washington</state>
         <zip>98001</zip>
     </shipaddress>
     <summary>
         <item dept="tools">screwdriver</item>
         <item dept="tools">hammer</item>
         <item dept="plumbing">fixture</item>
     </summary>
   </order>
</orders>

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

ADD
Show:
© 2014 Microsoft