XmlDataSource.Transforming Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vindt plaats voordat het opmaakmodel dat is gedefinieerd door de Transform eigenschap of die door de TransformFile eigenschap wordt geïdentificeerd, wordt toegepast op XML-gegevens.
public:
event EventHandler ^ Transforming;
public event EventHandler Transforming;
member this.Transforming : EventHandler
Public Custom Event Transforming As EventHandler
Gebeurtenistype
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een XmlDataSource besturingselement gebruikt met een TreeView besturingselement om getransformeerde XML-gegevens weer te geven. De XML-transformatie wordt uitgevoerd met behulp van het opmaakmodel dat wordt aangegeven door de TransformFile eigenschap. Daarnaast worden in het opmaakmodel transformatieargumenten gebruikt die in een XsltArgumentList runtime worden doorgegeven aan het besturingselement voor gegevensbronnen. In het codevoorbeeld ziet u hoe u het XsltArgumentList object doorgeeft aan het gegevensbronbeheer door de Transforming gebeurtenis te verwerken met een aangepaste gebeurtenis-handler.
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" 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="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 xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" 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>
Het XML-bestand in het codevoorbeeld bevat de volgende gegevens:
<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>
De transformatie van de XML-gegevens wordt uitgevoerd met het volgende opmaakmodel:
<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>
Opmerkingen
Transforming De gebeurtenis afhandelen om de TransformArgumentList eigenschap in te stellen met een XsltArgumentList object voordat het XmlDataSource besturingselement een XML-transformatie uitvoert.
Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.