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>