This documentation is archived and is not being maintained.

XmlDataSource.TransformArgumentList Property

Provides a list of XSLT arguments that are used with the style sheet defined by the Transform or TransformFile properties to perform a transformation on the XML data.

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

public virtual XsltArgumentList TransformArgumentList { get; set; }
<asp:XmlDataSource TransformArgumentList="XsltArgumentList" />

Property Value

Type: System.Xml.Xsl.XsltArgumentList
An XsltArgumentList object that contains XSLT parameters and objects to be applied to XML data when it is loaded by the XmlDataSource control. The default value is null.

Set the TransformArgumentList property when the Transforming event is raised to ensure the XSLT parameters are available at the time that the XSLT transformation is applied to the XML data.

If the EnableCaching property is set to true and the TransformArgumentList property is set, the cache entries are not automatically invalidated when the parameters change in the transforms argument list. In that case, you must write code to invalidate the cache by setting the CacheKeyDependency property.

The following code example demonstrates how to use an XmlDataSource with a TreeView control to display transformed XML data. The XML transformation is performed using the style sheet indicated by the TransformFile property. Additionally, the style sheet uses transform arguments that are passed to the data source control in an XsltArgumentList object at run time. The code example demonstrates how to pass the XsltArgumentList to the data source control by handling the Transforming event with a custom event handler.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Xml.Xsl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<script runat="server">
private void TransformEventHandler(object sender, EventArgs e) {

  // Add a dynamic transformation argument.
  DateTime d = new DateTime();
  d = DateTime.Now.AddDays(20);

  // Create an XsltArgumentList.
  XsltArgumentList xslArg = new XsltArgumentList();
  xslArg.AddParam("purchdate", "", d.ToShortDateString());

  ((XmlDataSource) sender).TransformArgumentList = xslArg;

<html xmlns="" >
  <head runat="server">
    <title>ASP.NET Example</title>
    <form id="form1" runat="server">
        ontransforming="TransformEventHandler" />

        <!- TreeView uses hierachical data, so the
            XmlDataSource uses an XmlHierarchicalDataSourceView
            when a TreeView is bound to it. -->

          <asp:treenodebinding Depth="1" datamember="genre"
            textfield="name" valuefield="name"/>
          <asp:treenodebinding depth="2" datamember="book"
            textfield="title" valuefield="title"/>
          <asp:treenodebinding depth="3" datamember="chapter"
            textfield="name" valuefield="num"/>


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

   <genre name="fiction">
     <book ISBN="0000000000">
       <title>Secrets of Silicon Valley</title>
         <chapter num="1" name="Introduction" />           
         <chapter num="2" name="Body" />          
         <chapter num="3" name="Conclusion" />
   <genre name="novel">
     <book genre="novel" ISBN="1111111111">
       <title>Straight Talk About Computers</title>
         <chapter num="1" name="Introduction" /> 
         <chapter num="2" name="Body" />
         <chapter num="3" name="Conclusion" />

The transformation of the XML data is performed with the following style sheet.

<xsl:stylesheet version="1.0" xmlns:xsl="">
 <xsl:param name="purchdate"/>
 <xsl:template match="bookstore">
     <xsl:apply-templates select="genre"/>
 <xsl:template match="genre">
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>
     <xsl:apply-templates select="book"/>
 <xsl:template match="book">
     <xsl:attribute name="ISBN">
       <xsl:value-of select="@ISBN"/>
     <xsl:attribute name="title">
       <xsl:value-of select="title"/>
       Price: <xsl:value-of select="price"/>
           15% discount if purchased by: <xsl:value-of select="$purchdate"/>      
     <xsl:apply-templates select="chapters/chapter" />
 <xsl:template match="chapter">
     <xsl:attribute name="num">
       <xsl:value-of select="@num"/>
     <xsl:attribute name="name">
       <xsl:value-of select="@name"/>

.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.