Re: Please help :-) Sorting XML data in a DataGrid

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



An XSL Transform creates an XML document from another XML document. It looks
to me like you're using the original XML document rather than the product of
the Transform in your DataSet.

Still, since you're using a DataSet, wouldn't it be easier to sort it rather
than to transform your XML data source?

--
HTH,

Kevin Spencer
Microsoft MVP

Printing Components, Email Components,
FTP Client Classes, Enhanced Data Controls, much more.
DSI PrintManager, Miradyne Component Libraries:
http://www.miradyne.net

"slinky" <campbellbrian2001@xxxxxxxxx> wrote in message
news:1184165495.348958.285160@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
I have an XML file that is successfully displaying in my datagrid on
my .aspx. I need to sort the data before it displays:

Here's my .aspx code:


<%@ import Namespace="System.Data" %>
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim myDataSet As New DataSet()
dgBooksPretty.DataSource = myDataSet
dgBooksPretty.AllowSorting = True
myDataSet.ReadXml(Server.MapPath("JFKtimeline.xml"))
dgBooksPretty.DataBind()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml"; >
<head id="Head1" runat="server">
<title>President John Fitzgerald Kennedy Biographical Timetable</
title>
</head>
<body borderwidth="20px">


<asp:datagrid id="dgBooks"
runat="server"
Visible="False"
Height="1px"
Width="1px" />
<asp:datagrid id="dgBooksPretty"
runat="server"
AutoGenerateColumns="False"
Font-Name="Verdana"
Font-Size="Small"
HorizontalAlign="Center"
ItemStyle-BackColor="#C0FFC0"
AlternatingItemStyle-BackColor="White"
Width="911px"
Height="128px"
AllowSorting="True"
BorderColor="PeachPuff"
BorderStyle="Outset"
BorderWidth="10px">
<HeaderStyle BackColor="DarkGreen"
HorizontalAlign="Center"
ForeColor="White"
Font-Bold="True" />
<Columns>
<asp:BoundColumn HeaderText="Event" DataField="event" />
<asp:BoundColumn HeaderText="Year" DataField="year" />
</Columns>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#C0FFC0" />
</asp:datagrid>
<p align="center">
</p>
</body>
</html>


And here is an XSL file for the sorting, but I can't seem to find any
logic to get the sort done... any ideas? Thanks!!!


<xsl:style***
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="events">
<xsl:copy>
<xsl:apply-templates select="topic">
<xsl:sort select="year" data-type="number"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:style***>



.


Quantcast