2010-11-30 17 views
1

Ich habe eine Gridview, die mit einem kleinen Datensatz in der Entwicklung gut funktionierte. In der Produktion muss es an Tausende von Datensätzen binden, wodurch es langsamer geladen wird. Gibt es eine Möglichkeit, die Leistung zu verbessern, z. B. das Abrufen der Daten während der Änderung des Gridview-Seitenindex?gridview asp.net

Antwort

1

Erstes und erstes Ausschalten von ViewState.

1

Sie sollten Ihrer Datenquelle mitteilen, weniger Datensätze aufzunehmen und dann Paging in Ihrem Grid und in Ihrer Datenquelle zu aktivieren.

2

Auch Chancen sind Sie wollen nur einmal binden. So sollten Sie (falls nicht bereits):

if(!IsPostback) 
{ 
    DatabindGridLogicHere(); 
} 

Auf diese Weise Ihre Gridview wird nur der Db zum ersten Mal getroffen haben, um die Daten zu bekommen.

0

Sie können die Eigenschaft "AllowPaging" in Ihrer GridView auf true setzen und eine Seitengröße von 10 angeben. Dann Schreiben Sie Ihre Datenabruflogik, um einen Datenstapel anstelle des gesamten Datensatzes auf einmal zurückzugeben. Wenn Sie die SQL-Abfrage schreiben, stellen Sie sicher, dass Sie sie nach einer ID sortieren.

Wenn also die Seite Index 1 ist, können Sie die erste Partie der Daten übernehmen von Seitenindex von 1 vorbei und die Seitengröße von 10

Logic sein wird;

SELECT [RequiredFields] 

FROM [YourDataSource] 

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

Auf der ersten Seite es von 0 bis 9. In der zweiten Seite 10. Die Annahme, pagesize Start ersten Satz von Einträgen dieser Ids zurück ist es kehrt Einträge dieser Ids 10-19 beginnen können Sie Ändern Sie die Seitengröße und die Abfragelogik nach Ihren Wünschen.

Wenn jedoch die Sortierung aktiviert ist, werden keine genauen Ergebnisse erzielt.