New to Telerik UI for ASP.NET AJAX? Download free 30-day trial

Custom Sorting

First RadGrid

Country CityCompany NameContact NameContact Title
 Page 3 of 10, items 21 to 30 of 91.
DenmarkÃ…rhusVaffeljernetPalle IbsenSales Manager
FinlandOuluWartian HerkkuPirkko KoskitaloAccounting Manager
FinlandHelsinkiWilman KalaMatti KarttunenOwner/Marketing Assistant
FranceStrasbourgBlondesddsl père et filsFrédérique CiteauxMarketing Manager
FranceMarseilleBon app'Laurence LebihanOwner
FranceNantesDu monde entierJanine LabruneOwner
FranceLilleFolies gourmandesMartine RancéAssistant Sales Agent
FranceNantesFrance restaurationCarine SchmittMarketing Manager
FranceVersaillesLa corne d'abondanceDaniel ToniniSales Representative
FranceToulouseLa maison d'AsieAnnette RouletSales Manager

  • Demo Configurator
  • Select field name:Country
  • Select sort order:Ascending
  • True

Second RadGrid

First nameLast name
NancyDavolio
AndrewFuller
JanetLeverling
MargaretPeacock
StevenBuchanan
MichaelSuyama
RobertKing
LauraCallahan
AnneDodsworth
This example demonstrates how the data can be sorted programmatically.
  • Using GridSortExpression class that provides sorting options for Telerik RadGrid
  • Using SortExpressions collection of GridTableView class
  • How to set the two different sorting modes - single or multi-column sorting of Telerik RadGrid
It also includes sorting persistence after postback operation.

The second grid on the demo allows you to apply custom sort criteria by setting the AllowCustomSorting property for the master table. With custom sorting turned on, RadGrid will display the sorting icons but it will not actually sort the data. You will need to perform the custom sorting manually inside the SortCommand event handler.

Instructions

Demo instructions first grid:

  • Make your choice in the configuration section and click the button to apply / clear sorting.

Demo instructions second grid:

  • Click the "First Name" column to sort by string length
  • Click the "Last Name" column to sort descending on first click
  • DefaultVB.aspx
  • DefaultVB.aspx.vb
<%@ Page Language="vb" AutoEventWireup="false" Inherits="Telerik.GridExamplesCSharp.Functionality.Sorting.CustomSorting.DefaultVB"CodeFile="DefaultVB.aspx.vb"  %>

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register TagPrefix="qsf" Namespace="Telerik.QuickStart" %>
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head runat="server">
    <title>Telerik ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
    <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" />
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdateInitiatorPanelsOnly="true">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadGrid1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="ConfigurationPanel1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadGrid2">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <div class="demo-container">
        <h2>First RadGrid</h2>
        <telerik:RadGrid RenderMode="Lightweight" ID="RadGrid1" DataSourceID="SqlDataSource1" runat="server"
            AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False">
            <MasterTableView Width="100%" AllowMultiColumnSorting="true">
                <Columns>
                    <telerik:GridBoundColumn SortExpression="Country" HeaderText="Country" HeaderButtonType="TextButton"
                        DataField="Country">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="City" HeaderText="City" HeaderButtonType="TextButton"
                        DataField="City">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="CompanyName" HeaderText="Company Name" HeaderButtonType="TextButton"
                        DataField="CompanyName">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="ContactName" HeaderText="Contact Name" HeaderButtonType="TextButton"
                        DataField="ContactName">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn SortExpression="ContactTitle" HeaderText="Contact Title"
                        HeaderButtonType="TextButton" DataField="ContactTitle">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
            <PagerStyle Mode="NumericPages"></PagerStyle>
        </telerik:RadGrid>
        <br />
        <qsf:ConfiguratorPanel runat="server" ID="ConfigurationPanel1" Expanded="true">
            <Views>
                <qsf:View Title="Add/Remove sort expression">
                    <qsf:ConfiguratorColumn ID="ConfiguratorColumn1" runat="server">
                        <ul class="fb-group">
                            <li>
                                <qsf:DropDownList ID="RadDropDownList3" runat="server" Width="120px" Label="Select field name:">
                                    <Items>
                                        <telerik:DropDownListItem Value="Country" Text="Country"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="City" Text="City"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="CompanyName" Text="CompanyName"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="ContactName" Text="ContactName"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="ContactTitle" Text="ContactTitle"></telerik:DropDownListItem>
                                    </Items>
                                </qsf:DropDownList>
                            </li>
                            <li>
                                <qsf:DropDownList ID="RadDropDownList2" runat="server" Width="120px" Label="Select sort order:">
                                    <Items>
                                        <telerik:DropDownListItem Value="Ascending" Selected="True" Text="Ascending"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="Descending" Text="Descending"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="None" Text="No Sort"></telerik:DropDownListItem>
                                    </Items>
                                </qsf:DropDownList>
                            </li>
                            <li>
                                <qsf:Button ID="btnAddExpression" runat="server" Text="Add"></qsf:Button>
                                <qsf:Button ID="Clear" runat="server" Text="Remove"></qsf:Button>
                            </li>
                        </ul>
                    </qsf:ConfiguratorColumn>
                </qsf:View>
            </Views>
            <Views>
                <qsf:View Title="Allow multi-column sorting">
                    <qsf:ConfiguratorColumn ID="ConfiguratorColumn2" runat="server">
                        <ul class="fb-group">
                            <li>
                                <qsf:DropDownList ID="RadDropDownList1" runat="server" AutoPostBack="True" Width="120px" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                                    <Items>
                                        <telerik:DropDownListItem Value="True" Selected="True" Text="True"></telerik:DropDownListItem>
                                        <telerik:DropDownListItem Value="False" Text="False"></telerik:DropDownListItem>
                                    </Items>
                                </qsf:DropDownList>
                            </li>
                        </ul>
                    </qsf:ConfiguratorColumn>
                </qsf:View>
            </Views>
        </qsf:ConfiguratorPanel>
        <hr />
        <h2>Second RadGrid</h2>
        <telerik:RadGrid RenderMode="Lightweight" ID="RadGrid2" runat="server" AllowSorting="True" AutoGenerateColumns="False"
            GridLines="None" OnSortCommand="RadGrid2_SortCommand">
            <MasterTableView AllowCustomSorting="true">
                <Columns>
                    <telerik:GridBoundColumn HeaderText="First name" HeaderButtonType="TextButton" DataField="FirstName">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn HeaderText="Last name" HeaderButtonType="TextButton" DataField="LastName">
                    </telerik:GridBoundColumn>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
        <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
            ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM Customers"
            runat="server"></asp:SqlDataSource>
    </div>

    </form>
</body>
</html>

Support & Learning Resources

Find Assistance