or
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="RadGridSorting.aspx.vb" Inherits="RadGridSorting" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager runat="server" ID="mgrJS"> </telerik:RadScriptManager> <telerik:RadGrid runat="server" ID="dgHeader" Skin="Web20" AllowSorting="true" > <ClientSettings> <Scrolling UseStaticHeaders="True" /> <Selecting EnableDragToSelectRows="False" /> </ClientSettings> <MasterTableView BorderWidth="1px" GridLines="Both" style="border-collapse: collapse !Important;" Font-Bold="false" TableLayout="Fixed" AutoGenerateColumns="false" ShowHeader="True" > <RowIndicatorColumn Visible="False"> <HeaderStyle Width="20px" /> </RowIndicatorColumn> <ExpandCollapseColumn Resizable="False" Visible="False"> <HeaderStyle Width="20px" /> </ExpandCollapseColumn> <EditFormSettings> <PopUpSettings ScrollBars="None" /> </EditFormSettings> </MasterTableView> </telerik:RadGrid> </form> </body> </html>Partial Class RadGridSorting Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Dim dtHeader As New DataTable dtHeader.Columns.Add(New DataColumn("COL_ID", GetType(String))) Dim colRow As DataRow = dtHeader.NewRow colRow(0) = "1234567" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "2345678" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "3456789" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "4567890" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "5678901" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "6789012" dtHeader.Rows.Add(colRow) colRow = dtHeader.NewRow colRow(0) = "7890123" dtHeader.Rows.Add(colRow) 'Define columns of master table view. For Each row As DataRow In dtHeader.Rows Dim newCol As New GridBoundColumn dgHeader.MasterTableView.Columns.Add(newCol) newCol.HeaderText = row("COL_ID") newCol.DataField = row("COL_ID") newCol.DataFormatString = "{0:N0}" newCol.HeaderStyle.Width = 100 newCol.ItemStyle.Width = 100 Next Session("header") = dtHeader End If End Sub Protected Sub dgHeader_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles dgHeader.ItemDataBound If e.Item.ItemType = GridItemType.Header Then Dim hdrItem As GridHeaderItem = CType(e.Item, GridHeaderItem) For i As Integer = 2 To hdrItem.Cells.Count - 1 Dim ctrl As LinkButton = CType(hdrItem.Cells(i).Controls(0), LinkButton) If ctrl IsNot Nothing Then Dim val As Integer = 0 Integer.TryParse(ctrl.Text, val) If val > 0 Then Dim chk As New CheckBox chk.ID = "chk" & val hdrItem.Cells(i).Controls.Clear() hdrItem.Cells(i).Controls.Add(chk) hdrItem.Cells(i).Controls.Add(ctrl) hdrItem.Cells(i).HorizontalAlign = HorizontalAlign.Center End If End If Next End If End Sub Protected Sub dgHeader_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles dgHeader.NeedDataSource If Session("data") Is Nothing Then Session("data") = CreateTable() End If dgHeader.DataSource = Session("data") End Sub Private Function CreateTable() As DataTable Dim dtHeader As DataTable = Session("header") Dim dtData As New DataTable For Each dr As DataRow In dtHeader.Rows dtData.Columns.Add(New DataColumn(dr("COL_ID"), GetType(Integer))) Next 'Populate w/ data Dim Generator As System.Random = New System.Random() Dim r As DataRow For i As Integer = 0 To 9 r = dtData.NewRow For j As Integer = 0 To 6 r(j) = Generator.Next(0, 100) Next dtData.Rows.Add(r) Next Return dtData End Function Protected Sub dgHeader_SortCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridSortCommandEventArgs) Handles dgHeader.SortCommand Dim s As String = "" End SubEnd Class<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function RequestStart(sender, args) { var submitButton = $get("<%= EditButton.ClientID %>"); submitButton.disabled = true; } </script></telerik:RadCodeBlock<telerik:RadAjaxPanel ID="MainRadAjaxPanel" runat="server" LoadingPanelID="MainRadAjaxLoadingPanel" ClientEvents-OnRequestStart="RequestStart" >....... The form controls ....<asp:Button ID="EditButton" runat="server" Text="Edit" SkinID="NormalButton" OnClick="EditButton_Click" /></telerik:RadAjaxPanel>

<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" visible="false" /><telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" GridLines="None" AllowFilteringByColumn="True" AllowSorting="True" Height="300px" PageSize="7" OnItemDataBound="RadGrid1_ItemDataBound"ViewStateMode="Disabled" OnDataBound="RadGrid1_DataBound" AutoGenerateColumns="false"SelectedItemStyle-Width="0px" CellSpacing="0"> <MasterTableView> <Columns> <telerik:GridBoundColumn DataField="CODE" HeaderText="Code" ReadOnly="True" SortExpression="CODE" UniqueName="CODE"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="NAME" HeaderText="Code" ReadOnly="True" SortExpression="NAME" UniqueName="NAME"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings> <Selecting AllowRowSelect="True" UseClientSelectColumnOnly="false" /> <ClientEvents OnRowSelected="RowSelected" /> </ClientSettings></telerik:RadGrid>