Die DataGrid -Kontrolle ist zu berühmt, daher habe ich viele Dinge verwendet. Hier geht es hauptsächlich um die Datalistensteuerung.
Die DATALIST -Steuerung ist tatsächlich sehr leistungsfähig. Überschneidung Überschneidung
Es ist in der Tat Kopfschmerzen.
Der Datalist bietet jedoch keine erstellte Paging -Funktion, aber es bedeutet nicht, dass wir die Datalist -Steuerung nicht verwenden können, um die Paging zu implementieren.
Im Folgenden finden Sie den ursprünglichen Code.
(Dieses Programm wird unter dem .NET -Framework Beta 2 getestet)
< % @ Page Language = C# %>
< % @ Importieren namespace = system.data %>
< % @ Import Namespace = System.data.oledb %>
<Skript Sprache = C# Runat = Server>
/*
Durch Fliegenmesser schaffen
http://www.aspcn.com
2001-7-25 01:44
Unterstützung .NET Framework Beta 2
*/
OledbConnection myconn;
int pageSize, recordCount, pagecount, currentPage;
public void page_load (Objekt SRC, EventArgs E)
{{{{
// pageSize festlegen
pageSize = 10;
// Verbinden
String MyConnString = Provider = Microsoft.Jet.OledB.4.0;
MyConn = new OLEDBConnection (MyConnString);
myconn.open ();
// Die erste Ausführungsanfrage
if (! page.ispostback)
{{{{
listBind ();
CurrentPage = 0;
ViewState [pageIndex] = 0;
// Wie viele Datensätze werden insgesamt berechnet
RecordCount = calculateCord ();
lblRecordCount.text = recordCount.toString ();
// Wie viele Seiten werden insgesamt berechnet
pagecount = recordCount/pageSize;
lblpageCount.text = pageCount.toString ();
ViewState [PageCount] = PageCount;
}
}
// Berechnen Sie, wie viele Datensätze insgesamt vorhanden sind
Public int calcentecord ()
{{{{
int intCount;
String StrCount = Wählen Sie Count (*) als CO aus der Punktzahl;
OLEDBCOMMAND MYCOMM = NEW OLEDBCOMMAND (STRCOUNT, MYCONN);
OLEDBDATAREADER DR = MYCOMM.EXECUTEREADER ();
if (Dr.Read ()))
{{{{
intCount = int32.Parse (DR [co] .ToString ());
}
anders
{{{{
intCount = 0;
}
dra.close ();
IntCount zurückgeben;
}
iCollection erzeugt ()
{{{{
int startIndex;
// Stellen Sie die Startadresse des Imports fest
startIndex = currentPage*pageSize;
String strsel = select * aus der Punktzahl;
Dataset ds = neuer Datensatz ();
OLEDBDATADAPTER MYADAPTER = NEU OLEDBDATAADAPTER (STRSEL, MYCONN);
myAdapter.fill (ds, startIndex, pageSize, Score);
Rückgabe ds.tables [Score] .DefaultView;
}
public void listbind ()
{{{{
Score.DataSource = createsource ();
Score.Databind ();
lbnnextPage.enabled = true;
lbnprevpage.enabled = true;
if (currentPage == (pageCount-)) lbnnextPage.Enabled = false;
if (currentPage == 0) lbnprevpage.Enabled = false;
lblcurrentPage.Text = (currentPage+1) .tring ();
}
public void page_onclick (Objektabsender, CommandEventArgs E)
{{{{
CurrentPage = (int) viewState [pageIndex];
pagecount = (int) viewState [pagecount];
String cmd = e.comandname;
// Richter CMD beurteilen, um die Richtung der Seite zu ermitteln
Schalter (CMD)
{{{{
Fall Weiter:
if (currentPage <(pageCount-)) currentPage ++;
Brechen;
Case Prev:
if (currentPage> 0) currentPage-;
Brechen;
}
ViewState [PageIndex] = CurrentPage;
listBind ();
}
</script>
<html>
<kopf>
<title> </title>
</head>
<body>
<Formular Runat = Server>
Zusammen <ASP: label id = lblRecordCount prognolor = rot runat = server />
Der Strom ist <ASP: Label -ID = lblcurrentPage prognolor = rot runat = server /> /<ASP: label id = lblpageCount prognolor = rot raunat = server />
<ASP: Datalist ID = Score Runat = Server
Kopfstyle-Backcolor =#AAAADD
AlternatingItemStyle-BackColor = Gainsboro
EditItemStyle-backcolor = gelb
"
<TeMtemplate>
Name: < %# Databinder.eval (Container.Dataitem, Name) %>
<ASP: LinkButton id = btnSelect text = editor commandname = bearbeiten runat = server />
</itemTemplate>
</ASP: Datalist>
<ASP: LinkButton id = lbnprevpage text = vorherige Seite Befehlsname = prev oncommand = page_onclick runat = server />
<ASP: LinkButton id = lbnnextPage text = Nächste Befehlsname = Nächste OnCommand = page_onclick runat = server />
</form>
</body>
</html>
Die laufenden Ergebnisse sind wie oben gezeigt :)
Wenn Sie das Programm schreiben, ist es das Wichtigste, selbst darüber nachzudenken. Die Frage ist zu einfach, niemand ist bereit zu beantworten.
Viel nachzudenken und Informationen zu überprüfen, gewinnt wirklich.