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>

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

Kevin
Wed Jul 11 12:11:14 CDT 2007

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@yahoo.com> wrote in message
news:1184165495.348958.285160@k79g2000hse.googlegroups.com...
>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>
>



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

sloan
Wed Jul 11 20:56:29 CDT 2007


dgBooksPretty.DataSource = ds.Select ( "" , "BookName ASC" ) ;

Do a select, with NO select criteria.





"slinky" <campbellbrian2001@yahoo.com> wrote in message
news:1184165495.348958.285160@k79g2000hse.googlegroups.com...
>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>
>