2010-11-30 4 views
1

У меня есть сетка, которая отлично работает с небольшим набором данных в разработке. В производстве он должен привязываться к тысячам записей, что замедляет загрузку. Есть ли способ повысить производительность, например, получить данные во время изменения gridview pageindex?gridview asp.net

ответ

1

Вы должны сообщить своему источнику данных меньше записей и включить пейджинг в своей сетке и источнике данных.

2

Также есть вероятность, что вы хотите связать его только один раз. Таким образом, вы должны (если не уже):

if(!IsPostback) 
{ 
    DatabindGridLogicHere(); 
} 

Таким образом, ваш GridView будет иметь только ударить БД в первый раз, чтобы получить данные.

0

Вы можете включить свойство AllowPaging в true в GridView и указать размер страницы 10. Затем запишите свою логику поиска данных, чтобы сразу вернуть пакет данных вместо всего набора данных. При написании SQL-запроса обязательно заказывайте его по идентификатору.

Таким образом, если индекс страницы 1 вы можете принять первую партию данных, передавая индексную страницу 1, а размер страницы 10.

логики будет;

SELECT [RequiredFields] 

FROM [YourDataSource] 

WHERE (Id>=((PageIndex-1)*pageSize) AND Id<(PageSize*pageIndex)) ORDER BY Id 

На первой странице он будет возвращать первый набор записей этих идентификаторов, начиная от 0 до 9. На второй странице он возвращает запись этих идентификаторов, начиная от 10 до 19 предполагающей PAGESIZE 10. Вы можете измените размер страницы и логику запроса, как вы пожелаете.

Но если сортировка включена, это не даст точных результатов.