1

我有一个 Telerik:RadGridView 里面有项目,其中一些是可扩展的。使行可扩展的决定是在 RowLoaded 事件中通过根据行中对象的类型设置 IsExpandable 标志来完成的。这很好用。

为了处理行扩展,我有一个方法来处理 DataLoading 事件。它看起来像这样:

    void AssignedNumbersGrid_DataLoading(object sender, GridViewDataLoadingEventArgs e)
    {
        GridViewDataControl dataControl = (GridViewDataControl)sender;
        if (dataControl.ParentRow != null)
        {
            dataControl.ShowGroupPanel = false;
            dataControl.AutoGenerateColumns = false;
            dataControl.CanUserFreezeColumns = false;
            dataControl.IsReadOnly = true;
            dataControl.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
            dataControl.IsFilteringAllowed = false;
            dataControl.ShowInsertRow = false;
            dataControl.RowIndicatorVisibility = Visibility.Collapsed;
            dataControl.ChildTableDefinitions.Clear();
            dataControl.Margin = new Thickness(0, 0, 0, 0);
            dataControl.EnableRowVirtualization = true;
            dataControl.MaxHeight = 100;
            ScrollViewer.SetVerticalScrollBarVisibility(dataControl, ScrollBarVisibility.Auto);

            dataControl.Columns.Add(BuildSelectColumn());
            dataControl.Columns.Add(BuildNewColumn("Range Number", "DisplayAssociatedInfo"));
            dataControl.Columns.Add(BuildTypeColumn());
            dataControl.Columns.Add(BuildRemarkColumn());
            dataControl.Columns.Add(BuildNewColumn("Status", "DisplayStatus"));
        }
    }

我添加了代码来设置最大高度和附加的滚动查看器,但滚动条没有显示。dataControl 对象的类型为 GridViewDataControl,它与 RadGridView 不同。有谁知道我怎样才能让滚动条显示在扩展的网格上?我需要这个的原因是扩展的网格可能包含数百个项目,如果它很大,构建网格需要几秒钟。我在想,使用行虚拟化和滚动条,它会快得多。

4

2 回答 2

0

你有没有试过这个:

<telerik:RadGrid ..>
     .....

   <ClientSettings EnableRowHoverStyle="True">
        <Scrolling AllowScroll="True" EnableVirtualScrollPaging="True" SaveScrollPosition="True">
        </Scrolling>
    </ClientSettings>

</telerik:RadGrid>
于 2011-07-29T15:17:17.340 回答
0

我通过使用行详细信息功能解决了这个问题。行详细信息有另一个包含子项的网格。此选项的性能非常快。

于 2011-08-01T12:29:18.650 回答