Please help :-) Sorting XML data in a DataGrid

  • Thread starter Thread starter slinky
  • Start date Start date
S

slinky

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:stylesheet
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:stylesheet>
 
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
 
dgBooksPretty.DataSource = ds.Select ( "" , "BookName ASC" ) ;

Do a select, with NO select criteria.
 
Back
Top