【问题标题】:filtering is not working for Telerik RadGridView Silverlight过滤不适用于 Telerik RadGridView Silverlight
【发布时间】:2013-03-19 18:31:31
【问题描述】:

我正在使用 Telerik radgridview,其项目集合是绑定到 datapager 的域源 我有 20 页,当我在列上过滤时,它只是在当前页面上过滤,我如何让它过滤整个集合。下面是我的代码

           <telerikRad:RadGridView>
 ItemsSource="{Binding ElementName=stddata, Path=Data}" 
           <telerikRad:RadGridView.Columns>
           <telerik:GridViewDataColumn Header="stuName" DataMemberBinding="{Binding Name}" />
            <telerik:GridViewDataColumn Header="StuId" DataMemberBinding="{Binding StudentId}" />
              <telerikRad:RadGridView.Columns>
           <telerikRad:RadGridView>

            <sdk:DataPager Grid.Row="2"                                            
           x:Name="SSSS"                                            
          Source="{Binding Data, ElementName=stddata}"                                           
           IsTotalItemCountFixed="True" />

          <riaControls:DomainDataSource Name="stddata"                                                    
               AutoLoad="True"                                                                                                                    
               PageSize="9"                                                        
              QueryName="GetStudentsQuery"                                                        
              DomainContext="{Binding DomainContext}">
</riaControls:DomainDataSource>

【问题讨论】:

    标签: silverlight-4.0 filtering telerik-grid raddatapager


    【解决方案1】:

    Telerik 提供通过将过滤器从 RadGridView 应用到控件绑定到的集合来间接获取过滤后的项目。

    这是一种解决方案,它允许人们使用 Telerik RadGridView 控件中的当前过滤器和排序设置来获取过滤后的排序数据项列表。

    using Telerik.Windows.Data;
    .
    .
    .
    IEnumerable<MyClass> itemsToDisplay { get; set; }  //The RadGridView is bound to this property
    
    public void DoSomethingWithFilteredAndSortedDisplayItems(RadGridView rgv)
    {
        IQueryable<MyClass> iqItems = itemsToDisplay.AsQueryable();
        FilterDescriptorCollection filter = rgv.FilterDescriptors;
        SortDescriptorCollection sort = rgv.SortDescriptors;
        List<MyClass> fsItems = iqItems.Where(filter).Sort(sort).ToIList() as List<MyClass>;
    
        if (fsItems != null && fsItems.Count > 0)
        {
            DoSomethingWithDisplayItems(fsItems);
        }
    }
    
    public void DoSomethingWithDisplayItems(IEnumerable<MyClass> list)
    {
        ... //Do something
    }
    

    这是为了说明。在我自己的代码中,我将过滤器和排序实现为 RadGridView 控件的扩展方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-21
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多