【问题标题】:how to get the xtragrid filtered and sorted datasource?如何获取 xtragrid 过滤和排序的数据源?
【发布时间】:2012-06-29 00:24:58
【问题描述】:

我有一个绑定到 bindingSource 的 xtraGrid 控件 (v12.1),最后从 LINQ 到实体查询 (EF4.3.1) 获取其数据,最终用户可以过滤和排序 gridView,我有一个 Stimulsoft 报告当用户单击 PrintListButton 时显示 gridView 的内容,如何获取 xtragrid 过滤和排序的数据源,以便将其附加到报告中? 谢谢。

【问题讨论】:

    标签: datasource xtragrid


    【解决方案1】:
    var data = GetDataView(xtraGridControl1);
    report.RegData("List", data.ToTable());
    
    
            public DataView GetDataView(GridControl gc)
            {
                DataView dv = null;
    
                if (gc.FocusedView != null && gc.FocusedView.DataSource != null)
                {
                    var view = (ColumnView)gc.FocusedView;
                    var currentList = listBindingSource.List.CopyToDataTable().DefaultView; //(DataView)
    
                    var filterExpression = GetFilterExpression(view);
                    var sortExpression = GetSortExpression(view);
    
                    var currentFilter = currentList.RowFilter;
    
                    //create a new data view 
                    dv = new DataView(currentList.Table) {Sort = sortExpression};
    
                    if (filterExpression != String.Empty)
                    {
                        if (currentFilter != String.Empty)
                        {
                            currentFilter += " AND ";
                        }
                        currentFilter += filterExpression;
                    }
                    dv.RowFilter = currentFilter;
                }
                return dv;
            }
    
            public string GetFilterExpression(ColumnView view)
            {
                var expression = String.Empty;
    
                if (view.ActiveFilter != null && view.ActiveFilterEnabled
                              && view.ActiveFilter.Expression != String.Empty)
                {
                    expression = view.ActiveFilter.Expression;
                }
                return expression;
            }
    
            public string GetSortExpression(ColumnView view)
            {
                var expression = String.Empty;
                foreach (GridColumnSortInfo info in view.SortInfo)
                {
                    expression += string.Format("[{0}]", info.Column.FieldName);
    
                    if (info.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)
                        expression += " DESC";
                    else
                        expression += " ASC";
                    expression += ", ";
                }
                return expression.TrimEnd(',', ' ');
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 2012-12-21
      • 1970-01-01
      相关资源
      最近更新 更多