javascript .net telerik radgrid telerik-grid

javascript - get_selectedItems()[0] en RadGrid devuelve nulo



.net telerik (1)

Tengo un problema con la función get_selectedItems() . Yo uso RadGrid de Telerik. Excelentes controles, pero ahora tropecé con un error que no puedo resolver.

Al seleccionar una fila, llamo a la función RowSelectionChanged en el lado del cliente y luego obtendré una excepción.

¿Alguien podría decirme por qué sender.get_selectedItems()[0] es nulo mientras que sender.get_selectedItems().length es al menos 1?

<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> <script type="text/javascript"> function RowSelectionChanged(sender, eventArgs) { if (sender != null) { for (i = 0; i < sender.get_selectedItems().length; i++) { var it = sender.get_selectedItems()[i]; // it is null var element =it.get_element(); // throws exception } } } </script> </telerik:RadCodeBlock> <telerik:RadGrid ID="rgTest" runat="server" > <MasterTableView> <Columns> <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" /> <telerik:GridBoundColumn DataField="guid" /> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="true"> <ClientEvents OnRowSelected="RowSelectionChanged" /> <Selecting AllowRowSelect="true" /> </ClientSettings> </telerik:RadGrid>


La función get_selectedItems() debe invocarse NO en el objeto RadGrid pero en el objeto MasterTableView.

Este código funciona para mí:

<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> <script type="text/javascript"> function RowSelectionChanged(sender, eventArgs) { if (sender != null) { var masterTable = sender.get_masterTableView(); for (i = 0; i < masterTable.get_selectedItems().length; i++) { var it = masterTable.get_selectedItems()[i]; var element =it.get_element(); } } } </script> </telerik:RadCodeBlock>