Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Sidindelad repeater

Postad 2006-03-04 av Emmanuel Ay i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4109, Betyg: 80%

Förord

Denna artikeln beskriver hur man på ett enkelt sätt åstadkommer anpassad sidindelning (eller "paginering") mha Repeaterkontrollen och PagedDataSource klassen.
Innehåll
  » Sidindelad repeater


Sidindelad repeater

ASP.nets DataGrid är mycket användbar och har automatisk paginering. Tyvärr är DataGriden väldigt stel och ganska arbetsam att anpassa vad gäller layout. I motsats till detta är Repeatern lätt att anpassa, men ganska barskrapad vad gäller funktionalitet.

Lösningen? En ofta förbisedd klass som heter PagedDataSource. (Ingår i System.Web.UI.WebControls)

Med PagedDataSource kan du enkelt göra alla datakällor till paginerade sådana.
Såhär arbetar du med den:


PagedDataSource objPDS = new PagedDataSource();
objPDS.DataSource = objDinDataKälla(); // exempelvis ett dataset, datatable, arraylist osv osv.


För att aktivera pagineringen behöver du ställa ett antal egenskaper:


objPDS.AllowPaging = true; // Aktivera paginering på den anslutna datakällan
objPDS.PageSize = 10; // Ställ antal poster som skall visas på varje "sida" av datakällan


Därefter styr du vilken sida som visas via egenskapen "CurrentPageIndex":

objPDS.CurrentPageIndex = 1;


Med hjälp av PagedDataSource kan du exempelvis åstadkomma pagineringsgränssnitt som dessa:

Exempel 1


Exempel 2


Gemensam kod för exempel 1 & 2:

// gastbok.aspx



<%# DataBinder.Eval( Container.DataItem, "Meddelande" ) %>






Exempel 1: Sidnummernavigation

// gastbok.aspx.cs
void Page_Load( object sender, System.EventArgs e ) {
int intSidaID = 0;

DataSet dsGastbok = BLL.HämtaGästbok(); // Ersätt med din metod för att hämta data

// Skapa PageDataSource
PagedDataSource objPDS = new PagedDataSource();
objPDS.DataSource = dsGastbok;
objPDS.AllowPaging = true;
objPDS.PageSize = 10;

// Hämta aktuell sida från Querystring (om den finns)
if (Request.Querystring.Count > 0) {
if (Request.Querystring.Get("sidaid") != null)
intSidaID = int.Parse( Request.Querystring.Get("sidaid") );
}

objPDS.CurrentPageIndex = intSidaID;
repGastbok.DataSource = objPDS;
repGastbok.DataBind();

// Skapa navigation
System.Text.StringBuilder strNavigation = new System.Text.StringBuilder();
strNavigation.Append( "Välj sida: " );
for (int i = 0; i < objPDS.PageCount; i++) {
strNavigation.Append( " strNavigation.Append( i.ToString() );
strNavigation.Append( "\">" );
strNavigation.Append( (i+1).ToString() );
strNavigation.Append( "
" );
if ( (i > 0) && (i < objPDS.PageCount) ) {
strNavigation.Append( ", " );
}
}
divNavigation.innerHTML = strNavigation.ToString();
}


Exempel 2: "Föregående & Nästa" navigation

// gastbok.aspx.cs
void Page_Load( object sender, System.EventArgs e ) {
int intSidaID = 0;

DataSet dsGastbok = BLL.HämtaGästbok(); // Ersätt med din metod för att hämta data

// Skapa PageDataSource
PagedDataSource objPDS = new PagedDataSource();
objPDS.DataSource = dsGastbok;
objPDS.AllowPaging = true;
objPDS.PageSize = 10;

// Hämta aktuell sida från Querystring (om den finns)
if (Request.Querystring.Count > 0) {
if (Request.Querystring.Get("sidaid") != null)
intSidaID = int.Parse( Request.Querystring.Get("sidaid") );
}

objPDS.CurrentPageIndex = intSidaID;
repGastbok.DataSource = objPDS;
repGastbok.DataBind();

// Skapa navigation
System.Text.StringBuilder strNavigation = new System.Text.StringBuilder();
if (intSidaID > 0) {
strNavigation.Append( " strNavigation.Append( (intSidaID-1).ToString() );
strNavigation.Append( "\">« Föregående
");
}

if (intSidaID < objPDS.PageCount) {
strNavigation.Append( " strNavigation.Append( (intSidaID+1).ToString() );
strNavigation.Append( "\">Nästa »
");
}

divNavigation.innerHTML = strNavigation.ToString();
}


För vidare information om PagedDataSource:
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
853
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies