XmlDataSource.Transforming イベント
アセンブリ: System.Web (system.web.dll 内)

public: event EventHandler^ Transforming { void add (EventHandler^ value); void remove (EventHandler^ value); }
/** @event */ public void add_Transforming (EventHandler value) /** @event */ public void remove_Transforming (EventHandler value)

XmlDataSource コントロールが XML 変換を実行する前に、XsltArgumentList オブジェクトで TransformArgumentList プロパティを設定するには、Transforming イベントを処理します。

TreeView コントロールと共に XmlDataSource コントロールを使用して変換された 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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からXmlDataSource.Transforming イベントを検索する場合は、下記のリンクをクリックしてください。

- XmlDataSource.Transforming イベントのページへのリンク