Det får du göra manuellt, det finns ingen inbyggd pager i en datalist som i en datagrid (så kan du använda en datagrid istället, gör det!). Det finns många sätt att lösa det på... antingen hämtar du hela databasen och lägger den i ditt dataset och sedan plockar du rätt poster från den, eller så hämtar du rätt poster direkt från databasen med en sql-fråga. Använd sedan exempelvis en querystring för att hålla reda på vilken sida du befinner dig på mellan dina postbacks.
Nja, alltså en datareader är väl mer ett sätt att läsa från exempelvis en databas (den läser väl rad för rad om jag förstått det rätt). Om du har en väldigt stor datamängd är en datareader perfekt - det är kanske inte precis lämpligt att stoppa in googles databas i ett dataset. :)
Det jag menar är att du antingen läser in rätt data direkt (exempelvis att du bara fyller de poster du ska visa i ditt dataset) och sedan slänger in hela datasetet i din datalist. Detta är lätt att göra men kräver en ny fråga till databasen för varje gång. Eller så plockar du ut alla data och väljer ut rätt poster i efterhand. Fördelen med alternativ två är att du då bara gör en hämtning från databasen oavsett hur många gånger användaren bläddrar på sidan, nackdelen är ju att du lägger en större datamängd i serverns ramminne.
Sen hur du väljer att läsa in dina data är upp till dig!
En datalist kan du layouta själv i större utsträckning (med templates) än en datagrid som ju själv genererar html-kod. En datagrid har en mängd inbyggda funktioner, exempelvis paging, det finns inte i en datalist. Du kan även använda en repeater, denna genererar ingen html alls utöver de data som hämtas och upprepas för varje rad... perfekt alltså om man vill ha full kontroll över layouten.
hur gör jag för att bara fylla de första 20 raderna dataset,
skall jag försöka få det begränsat i SQL-koden.
Exakt hur den ska se ut beror ju på vad du vill ta fram, vilka sökkriterier du ska ha. SKa du bara ha de första raderna så kan du kanske skriva
SELECT TOP 20 * FROM Tabell ORDER BY Datum
Sen kan du ju bygga vidare med exempelvis querystrings... säg att du har ?Page=2&Count=10 (page = vilken sida och count = antal poster som ska visas samtidigt) så stoppar du in dem i din sql-fråga på lämpligt sätt.
Du arbetar ungefär lika mot ett dataset (ett dataset fungerar ju precis som en databas, med den skillnaden att den ligger i datorns ramminne!). Du kan bolla med ditt dataset precis hur du vill, radera, lägga till, förändra, sortera... Exakt hur syntaxen ser ut vet jag inte på rak arm och jag har lite brottom just nu, men jag om du inte löser det själv så kollar jag upp det senare!