XmlDataSource.Transforming XmlDataSource.Transforming XmlDataSource.Transforming XmlDataSource.Transforming Event

Definizione

Si verifica prima che il foglio di stile definito dalla proprietà Transform o identificato dalla proprietà TransformFile venga applicato ai dati XML.Occurs before the style sheet that is defined by the Transform property or identified by the TransformFile property is applied to XML data.

public:
 event EventHandler ^ Transforming;
public event EventHandler Transforming;
member this.Transforming : EventHandler 
Public Custom Event Transforming As EventHandler 

Esempi

Esempio di codice seguente viene illustrato come utilizzare un XmlDataSource controllare con un TreeView controllo per visualizzare i dati XML trasformati.The following code example demonstrates how to use an XmlDataSource control with a TreeView control to display transformed XML data. La trasformazione XML viene eseguita utilizzando il foglio di stile indicato dal TransformFile proprietà.The XML transformation is performed using the style sheet indicated by the TransformFile property. Inoltre, il foglio di stile Usa argomenti di trasformazione che vengono passati al controllo origine dati in un XsltArgumentList in fase di esecuzione.Additionally, the style sheet uses transform arguments that are passed to the data source control in an XsltArgumentList at run time. L'esempio di codice viene illustrato come passare i XsltArgumentList oggetto per il controllo origine dati tramite la gestione di Transforming evento con un gestore dell'evento personalizzato.The code example demonstrates how to pass the XsltArgumentList object 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" "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>

Il file XML nell'esempio di codice presenta i seguenti dati:The XML file in the code example has the following data:

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

La trasformazione dei dati XML viene eseguita con il foglio di stile seguente:The transformation of the XML data is performed with the following style sheet:

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

Commenti

Gestire il Transforming evento per impostare il TransformArgumentList proprietà con un XsltArgumentList object prima il XmlDataSource controllo esegue una trasformazione XML.Handle the Transforming event to set the TransformArgumentList property with an XsltArgumentList object before the XmlDataSource control performs an XML transformation.

Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.For more information about how to handle events, see Handling and Raising Events.

Si applica a

Vedi anche