2011-11-28 17 views
5

Mam problem z funkcją get_selectedItems(). Używam RadGrid z Telerik. Świetne sterowanie, ale teraz natknąłem się na błąd, którego nie mogę rozwiązać.get_selectedItems() [0] na RadGrid zwraca zero

Wybierając wiersz, wywołuję funkcję RowSelectionChanged po stronie klienta, a następnie otrzymam wyjątek.

Czy ktoś może mi powiedzieć, dlaczego sender.get_selectedItems()[0] ma wartość null, a sender.get_selectedItems().length jest co najmniej 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> 

Odpowiedz

6

Funkcja get_selectedItems() powinien być wywoływany nie na obiekcie RadGrid ale na obiekcie MasterTableView.

Ten kod działa dla mnie:

<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>