Hi All,

Will keep this brief and include all code below. I have an XML file with 3000+ records being loaded into a datagrid for presentation. This part is working correctly. The problem is sorting the data correctly on a column with a 'date' type. I am trying to tell the datagrid to initially order the data by this date field. Once the grid is published, I am also attempting to allow the user the ability to sort the dates but this is not working. The datagrid is treating the date data as text. I have a XSD schema which I think is telling the XML document and datagrid that the field is a date field but it just isn't working.

The code below will publish the datagrid by calling in an XML file but will not initially sort the data correctly by date or allow the user to sort the date data correctly.

There are four files in the source below - an .ASPX page, VB codebehind, XML file and the XSD file.

Can anyone help with what I am missing to get this data to sort by date correctly?? Any help would be greatly appreciated.



==================================================
ASPX PAGE - awardees.aspx
==================================================

Code:
<%@ Page Language="vb" Src="winners.vb" Codebehind="winners.vb" 
Inherits="Police.awardwinners"%>

<form runat="server">
	
<asp:DataGrid id="dtgCust" 
        runat="server" 
	CellPadding="3"
	AllowSorting = "True"
        AllowPaging = "True"
	ItemStyle-BackColor="#FFFFCC"
        AlternatingItemStyle-BackColor="#EEEEEE"
	pagesize="200">
		

<PagerStyle Mode="NumericPages" Position="TopAndBottom" 
HorizontalAlign="Right" PageButtonCount = "10"></PagerStyle>
        
<HeaderStyle BackColor="Navy" HorizontalAlign="Center" 
                   ForeColor="White" Font-Bold="True" />
			  
</asp:DataGrid>
	  	  
</form>
==================================================
VB Codebehind - winners.vb
==================================================

Code:
Imports System
Imports System.Xml
Imports System.Data
Imports System.Web.UI.WebControls
Imports System.Web.Caching

Namespace Police

Public Class awardwinners
  Inherits System.Web.UI.Page

  Protected WithEvents dtgCust As System.Web.UI.WebControls.DataGrid
  Dim strOrderBy As String
  Dim dv As New DataView

' " Web Form Designer Generated Code Omitted "

  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    If Not IsPostBack Then
      
	  strOrderBy = "AWARD_DATE ASC"
      ViewState("strOrderBy") = strOrderBy
      ViewState("Column") = "AWARD_DATE"
      ViewState("Order") = "ASC"
	  
	End If
    
    dtgCustBind()

  End Sub 
  
  
  
  Public Sub dtgCustBind()

    Dim ds As DataSet
    ds = New DataSet

    ds.ReadXMLSchema(MapPath("awardsch.xsd"))
	
	Try
      ds.ReadXml(MapPath("awards.xml"))
    Catch ex As Exception
      Response.Write(ex.Message.ToString())
    Finally
      ds.Dispose()
    End Try

    Dim dtbl As DataTable = ds.Tables(0)
    dv = New DataView(dtbl)
    dv.Sort = ViewState("strOrderBy")
	
    dtgCust.DataSource = dv
    dtgCust.DataBind()

  End Sub 
  
  
  
  Private Sub dtgCust_SortCommand1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dtgCust.SortCommand

    If ViewState("Order") = "ASC" Then
      strOrderBy = e.SortExpression & " DESC"
      ViewState("Order") = "DESC"
    Else
      strOrderBy = e.SortExpression & " ASC"
      ViewState("Order") = "ASC"
    End If

    ViewState("strOrderBy") = strOrderBy
    ViewState("Column") = e.SortExpression()
    dtgCustBind()

  End Sub

  Private Sub dgResults_PageIndexChanged1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dtgCust.PageIndexChanged

     Dim ds As DataSet
     ds = New DataSet
	
	ds.ReadXml(MapPath("awards.xml"))
	Dim dtbl As DataTable = ds.Tables(0)
    dv = New DataView(dtbl)
	
	dtgCust.CurrentPageIndex = e.NewPageIndex
    dv.Sort = ViewState("Column") & " " & ViewState("Order")
    dtgCust.DataSource = dv
    dtgCust.DataBind()

  End Sub

End Class 

End Namespace
==================================================
XML - awards.xml
==================================================
Code:
<root>
<row>
<DEPARTMENT>Police Department 1</DEPARTMENT>
<CITY>Smallville</CITY>
<STATE>OH</STATE>
<PROGRAM>Safety</PROGRAM>
<AWARD>34440</AWARD>
<ACTIVITY>Equipment ($1,000</ACTIVITY>
<AWARD_DATE>1/12/2007</AWARD_DATE></row>

<row>
<DEPARTMENT>Police Department 2</DEPARTMENT>
<CITY>Somewhere</CITY>
<STATE>OH</STATE>
<PROGRAM>Operations</PROGRAM>
<AWARD>14440</AWARD>
<ACTIVITY>Equipment ($12,726)</ACTIVITY>
<AWARD_DATE>1/15/2007</AWARD_DATE>
</row>

<row>
<DEPARTMENT>Police Department 3</DEPARTMENT>
<CITY>Summerville</CITY>
<STATE>OH</STATE>
<PROGRAM>Ops</PROGRAM>
<AWARD>24440</AWARD>
<ACTIVITY>Equipment ($1,000</ACTIVITY>
<AWARD_DATE>1/16/2006</AWARD_DATE>
</row>
</root>
==================================================
XSD - awardsch.xsd
==================================================
Code:
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">

<ElementType name="DEPARTMENT" content="textOnly"/>
<ElementType name="CITY" content="textOnly"/>
<ElementType name="STATE" content="textOnly"/>
<ElementType name="PROGRAM" content="textOnly"/>
<ElementType name="AWARD" content="textOnly" dt:type="ui4"/>
<ElementType name="ACTIVITY" content="textOnly"/>
<ElementType name="AWARD_DATE" content="textOnly" dt:type="date"/>

</Schema>