get_selectedItems () [0] в RadGrid возвращает ноль - PullRequest
5 голосов
/ 28 ноября 2011

У меня проблема с функцией get_selectedItems().Я использую RadGrid от Telerik.Прекрасные средства управления, но теперь я наткнулся на ошибку, которую не могу устранить.

При выборе строки я вызываю функцию 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>

1 Ответ

6 голосов
/ 29 ноября 2011

Функция 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>
...