This is a migrated thread and some comments may be shown as answers.

Problem With RadDataPager & VirtualQueryableCollectionView

0 Answers 94 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Srikrishna Illendula
Top achievements
Rank 1
Srikrishna Illendula asked on 16 Jan 2012, 04:05 AM
I am working with Telerik WPF controls, RadGridView, RadDataPager and VirtualQueryableCollectionView<T>.
The PageCount of RadDataPager is incorrect once i filtered the data via RadGridView header. The PageCount  is  
always 1.  please find attached image screenshot.

I do not know how to fix this issue. In following code, i set the VirtualItemCount value as new value but the RadDataPager show me 1 as PageCount. I could not move to next page.  

Assembly version is: 2011.3.1220.40 

<telerik:RadGridView x:Name="GridView" ItemsSource="{Binding DataView}" Width="700" MinHeight="386" MaxHeight="500"
                .........
</telerik:RadGridView>
  
<telerik:RadDataPager PageSize="100" Grid.Row="1" Source="{Binding DataView}"  />

public VirtualQueryableCollectionView<VSOEChageItemViewModel> DataView
     {
         get
         {
             if (_DataView == null)
             {
                 _DataView = new VirtualQueryableCollectionView<VSOEChageItemViewModel>() { LoadSize = 40, VirtualItemCount = 40 };
                 _DataView.ItemsLoading += DataViewItemsLoading;
             }
             return _DataView;
         }
         private set
         {
             if (_DataView != null)
             {
                 _DataView.ItemsLoading -= DataViewItemsLoading;
             }
  
             _DataView = value;
  
             if (_DataView != null)
             {
                 _DataView.ItemsLoading += DataViewItemsLoading;
             }
         }
     }

private void DataViewItemsLoading(object sender, VirtualQueryableCollectionViewItemsLoadingEventArgs e)
     {
         string filertString = GetFilertString();
  
         var sort = DataView.SortDescriptors;
         var sortString = sort.ToDynamicLinq();
         if (!string.IsNullOrEmpty(sortString))
             sortString = sortString.Remove(0, sortString.IndexOf(".") + 1);
  
         int allCount = 0;
         List<VSOEChageItemViewModel> dd1 = LoadData(filertString, sortString, e.StartIndex, e.ItemCount, out allCount);
  
  
         if (allCount != DataView.VirtualItemCount)
         {
             DataView.VirtualItemCount = allCount;
         }
  
         DataView.Load(e.StartIndex, dd1);
  
     }

No answers yet. Maybe you can help?

Tags
GridView
Asked by
Srikrishna Illendula
Top achievements
Rank 1
Share this question
or