2011-11-28 27 views
5

get_selectedItems() işleviyle ilgili bir sorunum var. Telerik'ten RadGrid kullanıyorum. Büyük kontroller, ama şimdi çözemediğim bir böcek üzerinde tökezledim.get_selectedItems() RadGrid üzerinde [0] null döndürür

Bir satır seçerken, istemci tarafında RowSelectionChanged işlevini ararım ve sonra bir istisna alırım.

sender.get_selectedItems().length neden en az 1 iken sender.get_selectedItems()[0] neden sıfır olduğunu söyleyebilir misiniz?

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

cevap

6

Fonksiyon get_selectedItems() DEĞİL RadGrid nesne üzerinde ama MasterTableView nesne üzerinde çağrılır edilmelidir.

Bu kod benim için çalışıyor:

<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> 
İlgili konular