Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: ASP.NET
Expertise: Intermediate
Jan 31, 2005

Use XSLT to Create an ASP.NET Page with ASP.NET Server Controls

Just write the HTML-Tag for the ASP.NET Control into the XSLT:

<xsl:stylesheet version="1.0" xmlns:asp="remove" ....
....
<tr>
	<td class="someclass">
		<xsl:for-each select="n1:Priority">
			<asp:CheckBox id="Priority" runat="server">
				<xsl:choose>
					<xsl:when test=".='true'">
						<xsl:attribute name="checked">true</xsl:attribute>
					</xsl:when>
					<xsl:when test=".='1'">
						<xsl:attribute name="checked">true</xsl:attribute>
					</xsl:when>
				</xsl:choose>
			</asp:CheckBox>
		</xsl:for-each>
	</td>
	<td class="someclass">Priority</td>
</tr>
That's what the following code does:

Protected ctlXML As PlaceHolder

Dim oXMLDoc As System.Xml.XPath.XPathDocument
Dim oXMLTrans As System.Xml.Xsl.XslTransform
Dim oSW As System.IO.StringWriter
Dim sHTML As String
Dim oCtl As Control

oXMLDoc = New System.Xml.XPath.XPathDocument("...")
oXMLTrans = New System.Xml.Xsl.XslTransform

'load the Stylesheet
oXMLTrans.Load(Server.MapPath("..."))

'Transform XML to HTML
oSW = New System.IO.StringWriter
oXMLTrans.Transform(oXMLDoc, Nothing, oSW, Nothing)
sHTML = oSW.ToString

If Not sHTML Is Nothing Then
  'Remove the Definition for the "namespace" ASP, which has been created
  sHTML = sHTML.Replace("xmlns:asp=""remove""", "")
End If

oCtl = Page.ParseControl(sHTML)
ctlXML.Controls.Clear()
ctlXML.Controls.Add(oCtl)
Martin Moser
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap