C# 在DevExpress GridView中显示大量数据

C# 在DevExpress GridView中显示大量数据,c#,devexpress,gridcontrol,C#,Devexpress,Gridcontrol,我有一个包含3000行的DevExpress网格视图,每行有10行作为详细信息(这意味着当网格加载时,我有30000个项目要加载) 加载所有数据需要很长时间,因此是否有任何方法显示例如100行,当用户使用自动过滤器时,我显示所需的行 示例 我尝试使用Skip-and-Take(使用LINQ),但这并不是我真正想要的,除此之外,我还想使用网格的自动过滤器 public static BindingList<patient> getObjectUsingLinq(string sql =

我有一个包含3000行的DevExpress网格视图,每行有10行作为详细信息(这意味着当网格加载时,我有30000个项目要加载)

加载所有数据需要很长时间,因此是否有任何方法显示例如100行,当用户使用自动过滤器时,我显示所需的行

示例

我尝试使用Skip-and-Take(使用LINQ),但这并不是我真正想要的,除此之外,我还想使用网格的自动过滤器

public static BindingList<patient> getObjectUsingLinq(string sql = "", int skipCount  = 0, int takeCount = 0)
        {
            var gsData = GetDataContext();
            var query = (from q in gsData.patient 
                        orderby q.nom 
                        select q);

            return new BindingList<patient>(LinqHelper.DoSortPaginate(query, "", skipCount, takeCount).ToList());

        }

如果需要在GridControl中显示大量记录,可以使用服务器数据绑定模式(同步或)。这些专门设计用于处理由50000多条记录组成的大型数据集。
从这些模式开始,请看一看。
使用XtraGrid和LINQ,您可以从这里开始:


另外,简化了将数据感知的DevXPress控件(如GridControl)绑定到数据源的过程

在我们查看之前向我们展示您的代码。如果只有3000行,则速度应该非常快。
DoSortPaginate
实现看起来如何,当速度较慢时使用的
takeCount
是什么?
listPatient = Patients.getObjectUsingLinq();
myGrid.DataSource = listPatient ;