Hi,
Im trying out the sample at http://www.telerik.com/help/aspnet-ajax/grid-persist-selected-rows-client-sorting-paging-grouping-filtering.html
Here is my page: http://www.ximnet.com.my/aspnet35/test_grid.aspx.
However, the page doesn't maintain the selected row after page change or after sorting.
Is there something wrong with my code?
ASPX:
VB:
Im trying out the sample at http://www.telerik.com/help/aspnet-ajax/grid-persist-selected-rows-client-sorting-paging-grouping-filtering.html
Here is my page: http://www.ximnet.com.my/aspnet35/test_grid.aspx.
However, the page doesn't maintain the selected row after page change or after sorting.
Is there something wrong with my code?
ASPX:
| <%@ Page Language="VB" AutoEventWireup="false" CodeFile="test_grid.aspx.vb" Inherits="test_grid" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!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> |
| <script type="text/javascript"> |
| var selected = {}; |
| function RadGrid1_RowSelected(sender, args) { |
| var gID = args.getDataKeyValue("gID"); |
| if (!selected[gID]) { |
| selected[gID] = true; |
| } |
| } |
| function RadGrid1_RowDeselected(sender, args) { |
| var gID = args.getDataKeyValue("gID"); |
| if (selected[gID]) { |
| selected[gID] = null; |
| } |
| } |
| function RadGrid1_RowCreated(sender, args) { |
| var gID = args.getDataKeyValue("gID"); |
| if (selected[gID]) { |
| args.get_gridDataItem().set_selected(true); |
| } |
| } |
| function GridCreated(sender, eventArgs) { |
| var masterTable = sender.get_masterTableView(); |
| //check whether all items on the active page are selected |
| if (masterTable.get_selectedItems().length == masterTable.get_pageSize()) { |
| //find the checkbox in the header of the GridClientSelectColumn and set checked state for it - will work with AllowMultiRowSelection = true only! |
| var gridHeader = masterTable.get_element().getElementsByTagName("TH")[0]; |
| for (var i = 0; i < gridHeader.childNodes.length; i++) { |
| if (gridHeader.childNodes[i].id.indexOf("columnSelectCheckBox") > -1) { |
| gridHeader.childNodes[i].checked = "true"; |
| } |
| } |
| } |
| } |
| </script> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <telerik:radscriptmanager id="RSM" runat="server" /> |
| <div> |
| <telerik:radgrid runat="server" id="gPoint" allowmultirowselection="True" showfooter="true" |
| runat="server" allowpaging="True" allowsorting="True" skin="Default" horizontalalign="NotSet" |
| width="100%" cellpadding="5"> |
| <pagerstyle position="Top" mode="NextPrevAndNumeric" /> |
| <ClientSettings> |
| <Selecting AllowRowSelect="True" /> |
| <ClientEvents OnRowCreated="RadGrid1_RowCreated" OnRowSelected="RadGrid1_RowSelected" |
| OnRowDeselected="RadGrid1_RowDeselected" OnGridCreated="GridCreated" /> |
| </ClientSettings> |
| <mastertableview autogeneratecolumns="False" gridlines="None" ClientDataKeyNames="gID"><NoRecordsTemplate> |
| <div style="text-align:left; vertical-align:middle;">No points found</div> |
| </NoRecordsTemplate> |
| <Columns> |
| <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" /> |
| <telerik:GridTemplateColumn UniqueName="gID" SortExpression="gID" HeaderText="Serial"> |
| <ItemTemplate> |
| <%#DataBinder.Eval(Container, "DataItem.gID")%> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| </Columns> |
| </mastertableview> |
| </telerik:radgrid> |
| </div> |
| </form> |
| </body> |
| </html> |
VB:
| Imports System.Data |
| Partial Class test_grid |
| Inherits System.Web.UI.Page |
| Protected Sub gPoint_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles gPoint.NeedDataSource |
| Dim dt As DataTable = New DataTable |
| Dim dc As DataColumn = New DataColumn |
| dc.ColumnName = "gID" |
| dt.Columns.Add(dc) |
| Dim dr As DataRow |
| Dim i As Integer |
| While i <> 50 |
| dr = dt.NewRow |
| dr("gID") = System.Guid.NewGuid.ToString |
| dt.Rows.Add(dr) |
| i = i + 1 |
| End While |
| gPoint.DataSource = dt |
| End Sub |
| End Class |