RadGrid 上的 get_selectedItems()[0] 返回 null

发布于 2024-12-18 17:53:23 字数 1421 浏览 3 评论 0原文

我的 get_selectedItems() 函数有问题。 我使用来自 TelerikRadGrid。很好的控制,但现在我偶然发现了一个我无法解决的错误。

选择一行时,我在客户端调用 RowSelectionChanged 函数,然后会出现异常。

谁能告诉我为什么 sender.get_selectedItems()[0] 为 null 而 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>

I have a problem with the get_selectedItems() function.
I use RadGrid from Telerik. Great controls, but now I stumbled on a bug which I can not solve.

When selecting a row, I call the RowSelectionChanged function on the client side and then I'll get an exception.

Could anyone tell me why sender.get_selectedItems()[0] is null while sender.get_selectedItems().length is at least 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木落 2024-12-25 17:53:23

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

Function get_selectedItems() should be invoked NOT on RadGrid object but on MasterTableView object.

This code works for me:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文