2011-11-28 17 views
5

मुझे get_selectedItems() फ़ंक्शन के साथ कोई समस्या है। मैं टेलीरिक से रैडग्रिड का उपयोग करता हूं। महान नियंत्रण, लेकिन अब मैं एक बग पर ठोकर खाई जिसे मैं हल नहीं कर सकता।get_selectedItems() [0] रैडग्रिड पर शून्य

एक पंक्ति का चयन करते समय, मैं ग्राहक पक्ष पर 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>