XmlDataSource.TransformArgumentList プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As XmlDataSource Dim value As XsltArgumentList value = instance.TransformArgumentList instance.TransformArgumentList = value
public: virtual property XsltArgumentList^ TransformArgumentList { XsltArgumentList^ get (); void set (XsltArgumentList^ value); }
/** @property */ public XsltArgumentList get_TransformArgumentList () /** @property */ public void set_TransformArgumentList (XsltArgumentList value)
public function get TransformArgumentList () : XsltArgumentList public function set TransformArgumentList (value : XsltArgumentList)
XmlDataSource コントロールが XML データを読み込むときに適用される XSLT パラメータおよびオブジェクトを保持する XsltArgumentList オブジェクト。既定値は null 参照 (Visual Basic では Nothing) です。

XML データへの XSLT 変換の適用時に、確実に XSLT パラメータを渡すには、Transforming イベントの発生時に TransformArgumentList プロパティを設定するようにします。
EnableCaching プロパティが true に設定され、かつ TransformArgumentList プロパティが設定されている場合、変換用の引数リストでパラメータを変更しても、キャッシュ エントリは自動的に無効化されません。この場合、CacheKeyDependency プロパティを設定することにより、キャッシュを無効するためのコードを記述する必要があります。

XmlDataSource と TreeView コントロールを使用し、変換後の XML データを表示する方法を次のコード例に示します。XML 変換は、TransformFile プロパティで指定したスタイル シートを使って実行されます。このスタイル シートは、さらに、データ ソース コントロールに対し実行時に XsltArgumentList オブジェクトとして渡された変換用の引数を使用します。コード例では、カスタムのイベント ハンドラで Transforming イベントを処理することによって XsltArgumentList をデータ ソース コントロールに渡しています。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Xml.Xsl" %> <SCRIPT runat="server"> Private Sub TransformEventHandler(sender As Object, e as EventArgs) ' Add a dynamic transformation argument. Dim d As New DateTime d = DateTime.Now.AddDays(20) 'Create an XsltArgumentList. Dim xslArg As XsltArgumentList = New XsltArgumentList xslArg.AddParam("purchdate", "", d.ToShortDateString()) Dim aXmlDataSource as XmlDataSource = CType(sender, XmlDataSource) aXmlDataSource.TransformArgumentList = xslArg End Sub ' TransformEventHandler </SCRIPT> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:xmldatasource id="XmlDataSource1" runat="server" datafile="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <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"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Xml.Xsl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <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; } </SCRIPT> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource id="XmlDataSource1" runat="server" datafile="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <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"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
<%@ Page Language="VJ#" %> <%@ Import Namespace="System.Xml.Xsl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <SCRIPT runat="server"> private void TransformEventHandler(Object sender, System.EventArgs e) { // Add a dynamic transformation argument. System.DateTime.get_Now().AddDays(20); // Create an XsltArgumentList. XsltArgumentList xslArg = new XsltArgumentList(); xslArg.AddParam("purchdate", "", System.DateTime.get_Now().AddDays(20). ToShortDateString()); ((XmlDataSource)sender).set_TransformArgumentList(xslArg); }//TransformEventHandler </SCRIPT> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource id="XmlDataSource1" runat="server" datafile="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <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"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
コード例の XML ファイルには、次のデータが含まれています。
<bookstore> <genre name="fiction"> <book ISBN="0000000000"> <title>Secrets of Silicon Valley</title> <price>12.95</price> <chapters> <chapter num="1" name="Introduction" /> <chapter num="2" name="Body" /> <chapter num="3" name="Conclusion" /> </chapters> </book> </genre> <genre name="novel"> <book genre="novel" ISBN="1111111111"> <title>Straight Talk About Computers</title> <price>24.95</price> <chapters> <chapter num="1" name="Introduction" /> <chapter num="2" name="Body" /> <chapter num="3" name="Conclusion" /> </chapters> </book> </genre> </bookstore>
XML データの変換は、次のスタイル シートを使って実行されます。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="purchdate"/> <xsl:template match="bookstore"> <bookstore> <xsl:apply-templates select="genre"/> </bookstore> </xsl:template> <xsl:template match="genre"> <genre> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates select="book"/> </genre> </xsl:template> <xsl:template match="book"> <book> <xsl:attribute name="ISBN"> <xsl:value-of select="@ISBN"/> </xsl:attribute> <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:attribute> <xsl:apply-templates select="chapters/chapter" /> </book> </xsl:template> <xsl:template match="chapter"> <chapter> <xsl:attribute name="num"> <xsl:value-of select="@num"/> </xsl:attribute> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates/> </chapter> </xsl:template> </xsl:stylesheet>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- XmlDataSource.TransformArgumentList プロパティのページへのリンク