Simple DataGrid Sorting Demo

This demo shows how to create a DataGrid with bound columns that allows the user to sort two of the six columns. For this demo clicking on the name will not sort the row, but just indicate what row was clicked. Note that here the AutoGenerateColumns property is set to False. Hence, in order to specify the column(s) that can be sorted, you must set the SortExpression property in the BoundColumn control. (Furthermore, note that the value of this setting is what is passed to the sorting event handler as e.SortExpression.)


Category NameFAQ DescriptionViewsAuthorAuthor's EmailDate Added
ASP.NETHow can I format numbers and date/times using ASP.NET? For example, I want to format a number as a currency.964,702Scott Mitchellmitchell@4guysfromrolla.com01-19-2002
ArraysHow can I convert a Recordset into an array? Also, how can I convert an array into a Recordset?238,089Scott Mitchellmitchell@4guysfromrolla.com06-14-2001
Databases, ErrorsI am using Access and getting a 80004005 error (or a [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)' error) when trying to open a connection! How can I fix this problem?233,530Scott Mitchellmitchell@4guysfromrolla.com01-17-2001
ArraysHow can I quickly sort a VBScript array? 230,033Richard Lowechadich@yahoo.com11-12-2000
ArraysHow do I display data on a web page using arrays instead of Do...While...MoveNext...???...186,006Scott Mitchellmitchell@4guysfromrolla.com04-11-2002
Databases, QueriesHow can I find out if a record already exists in a database? If it doesn't, I want to add it.183,511Steve Ciminosteve_cimino@hotmail.com12-14-2000
FileSystemObjectWhen I get a list of all files in a directory via the FileSystemObject, they aren't ordered in any reasonable way. How can I sort the files by name? Or by size? Or by date created? Or... 168,750Bill Wilkinsonbill@ClearviewDesign.com01-22-2001
Session ObjectFor session variables to work, must the Web visitor have cookies enabled?133,635Scott Mitchellmitchell@4guysfromrolla.com09-26-2000
EmailCan I send emails without using CDONTS?130,322Scott Mitchellmitchell@4guysfromrolla.com09-24-2000
StringsHow can I remove multiple spaces between words in a string? That is, if I have: Hi    there how can I get: Hi there?129,557Scott Mitchellmitchell@4guysfromrolla.com03-31-2001


Source Code
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>
<script language="vb" runat="server">
  Sub Page_Load(sender as Object, e as EventArgs)
    BindData()
  End Sub
	
	
  Sub BindData()
    '1. Create a connection
    Dim myConnection as New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))

    '2. Create the command object, passing in the SQL string
    Const strSQL as String = "sp_Popularity"
    Dim myCommand as New SqlCommand(strSQL, myConnection)

    'Set the datagrid's datasource to the datareader and databind
    myConnection.Open()
    dgPopularFAQs.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    dgPopularFAQs.DataBind()	
  End Sub
  
  Sub SortResults(sender as Object, e as DataGridSortCommandEventArgs)
	lblWhatClicked.Text = "You clicked: " & e.SortExpression
  End Sub
</script>

<form runat="server">
  <asp:label id="lblWhatClicked" runat="server" Font-Bold="True" />
  <p>
  <asp:DataGrid runat="server" id="dgPopularFAQs" 
                BackColor="#eeeeee" Width="85%"
                HorizontalAlign="Center"
                Font-Name="Verdana" CellPadding="4"
                Font-Size="10pt" AutoGenerateColumns="False"
                AllowSorting="True"
                OnSortCommand="SortResults">
    <HeaderStyle BackColor="Black" ForeColor="White" Font-Bold="True" HorizontalAlign="Center" />
    <AlternatingItemStyle BackColor="White" />
  
    <Columns>
      <asp:BoundColumn DataField="CatName" HeaderText="Category Name"  />
      <asp:BoundColumn DataField="Description" HeaderText="FAQ Description" />
      <asp:BoundColumn DataField="ViewCount" SortExpression="ViewCount" DataFormatString="{0:#,###}" 
             HeaderText="Views" ItemStyle-HorizontalAlign="Center" />
      <asp:BoundColumn DataField="SubmittedByName" HeaderText="Author"  />
      <asp:BoundColumn DataField="SubmittedByEmail" HeaderText="Author's Email"  />
      <asp:BoundColumn DataField="DateEntered" SortExpression="DateEntered" 
              HeaderText="Date Added"	DataFormatString="{0:MM-dd-yyyy}"  />    
    </Columns>
  </asp:datagrid>
</form>
	


[Return to the article]