XmlDataSource.OnTransforming(EventArgs) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Transforming 컨트롤에서 XML 데이터에 대한 XSLT 변환을 수행하기 전에 XmlDataSource 이벤트를 발생시킵니다.
protected:
virtual void OnTransforming(EventArgs ^ e);
protected virtual void OnTransforming (EventArgs e);
abstract member OnTransforming : EventArgs -> unit
override this.OnTransforming : EventArgs -> unit
Protected Overridable Sub OnTransforming (e As EventArgs)
매개 변수
예제
다음 코드 예제에 사용 하는 방법을 보여 줍니다.는 XmlDataSource 컨트롤을 TreeView 컨트롤이 표시 하는 XML 데이터를 변환 합니다. XML 변환 하 여 지정 된 스타일 시트를 사용 하 여 수행 됩니다는 TransformFile 속성입니다. 스타일 시트의 데이터 소스 컨트롤에 전달 되는 변환 인수를 사용 하는 또한는 XsltArgumentList 런타임에 개체입니다. 코드 예제에서는 전달 하는 방법에 설명 합니다 XsltArgumentList 처리 하 여 데이터 소스 컨트롤에 개체를 Transforming 메서드의 이름으로 식별 되는 사용자 지정 이벤트 처리기를 사용 하 여 이벤트에 대 한 설정는 OnTransforming 메서드.
<%@ 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>
코드 예제에서 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>
설명
이벤트가 발생하면 대리자를 통해 이벤트 처리기가 호출됩니다. 이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.
또한 OnTransforming 메서드를 사용하면 파생 클래스가 대리자를 연결하지 않고도 이벤트를 처리할 수 있습니다. 이는 파생 클래스에서 이벤트를 처리하는 기본 방법입니다.
상속자 참고
재정의 하는 경우 OnTransforming(EventArgs) 파생된 클래스에서 호출 해야 합니다 OnTransforming(EventArgs) 대리자를 등록 하는 기본 클래스의 메서드는 이벤트를 받도록 합니다.
적용 대상
추가 정보
.NET