У меня есть GridView, который показывает только 50 записей за раз через пейджинг.Если я свяжу это с источником, скажем, содержащим 150 записей, это работает как шарм, но когда размер записи резко увеличивается до 10 000 000, загрузка данных занимает целую вечность ... Итак, я хочу знать, есть ли способ загрузить 50записи в то время, которые видны ??
Я хочу что-то вроде отложенной загрузки или функции виртуализации панели стека в wpf.
Этокак я привязываюсь к GridView -
private void LoadCustomers()
{
if (Cache["CustomersData"] == null)
{
Business.Customers customers = Business.Customers.GetAllCustomer();
Cache["CustomersData"] = customers;
}
this.customerGridView.DataSource = Cache["CustomersData"];
this.customerGridView.DataBind();
}
А вот функция, которая извлекает данные из DB-
public static Customers GetAllCustomer(int index)
{
Customers customers = new Customers();
NShop_SmallEntities data = new NShop_SmallEntities();
var dbCustomers = (from c in data.Customers
select c).OrderBy(c=> c.CustomerId).Skip(index * 50).Take(50);
foreach (var dbCustomer in dbCustomers)
{
customers.Add(Customer.GetCustomer(dbCustomer));
}
return customers;
}
public static Customer GetCustomer(DAL.Customer dbCustomer)
{
return new Customer()
{
CustomerId = dbCustomer.CustomerId,
FirstName = dbCustomer.FirstName,
LastName = dbCustomer.LastName,
Email = dbCustomer.Email,
DOB = dbCustomer.DOB,
City = dbCustomer.City,
State = dbCustomer.State,
PostalCode = dbCustomer.PostalCode,
Country = dbCustomer.Country,
OrderCount = dbCustomer.Orders.Count()
};
}