2011-11-28 83 views
5

我有一個get_selectedItems()函數的問題。 我使用Telerik的RadGrid。偉大的控制,但現在我偶然發現了一個我無法解決的錯誤。RadGrid上的get_selectedItems()[0]返回null

當選擇一行時,我在客戶端調用RowSelectionChanged函數,然後我會得到一個異常。

誰能告訴我爲什麼sender.get_selectedItems()[0]爲空而sender.get_selectedItems().length至少爲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> 

回答

6

功能get_selectedItems()不應radgrid控件對象,但MasterTableView對象上調用。

此代碼的工作對我來說:

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