Добавление полосы прокрутки в Telerik GridViewDataControl для расширяемого элемента сетки - PullRequest
1 голос
/ 29 июля 2011

У меня есть 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. Кто-нибудь знает, как я могу получить полосу прокрутки, чтобы показать на расширенной сетке? Причина, по которой мне это нужно, заключается в том, что расширенная сетка может содержать несколько сотен элементов, и для ее построения требуется несколько секунд, если она большая. Я думаю, что с виртуализацией строк и полосой прокрутки это будет намного быстрее.

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Я решил проблему с помощью функции детализации строки.Детали строки имеют другую сетку, которая содержит дочерние элементы.Производительность для этой опции очень высокая.

0 голосов
/ 29 июля 2011

Вы пробовали это:

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

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

</telerik:RadGrid>
...