El control de datagrid es demasiado famoso, así que utilicé muchas cosas antes. Se trata principalmente del control de datos.
El control de datos es realmente muy poderoso. Intersección Intersección
De hecho, es un dolor de cabeza.
Sin embargo, Datalist no proporciona una función de paginación construida, pero no significa que no podamos usar el control de datos para implementar la paginación.
A continuación se muestra todo el código original.
(Este programa se prueba en .NET Framework Beta 2)
< % @ page idioma = c# %>
< % @ Importación de nombres = system.data %>
< % @ Importación de nombres = system.data.oledb %>
<Script Language = C# Runat = Server>
/*
Crear cuchillo volador
http://www.aspcn.com
2001-7-25 01:44
Soporte .NET Framework beta 2
*/
OLEDBConnection MyConn;
int pageSize, RecordCount, PageCount, CurrentPage;
public void Page_Load (Object SRC, EventArgs E)
{{
// establecer páginas
PageSize = 10;
// Conectar
String myConnString = Provider = Microsoft.Jet.OLEDB.4.0;
myconn = nueva OLEDBConnection (MyConnString);
myconn.open ();
// La primera solicitud de ejecución
if (! Page.ispostback)
{{
listBind ();
CurrentPage = 0;
ViewState [PageIndex] = 0;
// cuántos registros se calculan en total
RecordCount = CalculateCord ();
lBlrecordCount.Text = RecordCount.ToString ();
// cuántas páginas se calculan en total
pageCount = RecordCount/PageSize;
lBlPageCount.Text = PageCount.ToString ();
ViewState [PageCount] = PageCount;
}
}
// Calcule cuántos registros hay en total
Public int calcultecord ()
{{
int intcount;
cadena strCount = select Count (*) como Co de puntaje;
OLEDBCOMMAND MYCOMM = nuevo OLEDBCOMMAND (strCount, MyConn);
Oledbdatarader dr = mycomm.executereader ();
if (Dr.Read ())))
{{
intCount = int32.parse (dr [co] .ToString ());
}
demás
{{
intcount = 0;
}
dra.close ();
Devolver intcount;
}
iCollection CreateSource ()
{{
int startIndex;
// Establecer la dirección inicial de la importación
startIndex = currentPage*pageSize;
cadena strsel = select * de score;
DataSet ds = new DataSet ();
OLEDBDATAPTER myAdapter = nuevo OledBDataAdapter (Strsel, MyConn);
myAdapter.fill (ds, startIndex, pageSize, stork);
Return ds.tables [puntaje] .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 (remitente de objeto, commandEventArgs e)
{{
CurrentPage = (int) ViewState [PageIndex];
pageCount = (int) ViewState [pageCount];
cadena cmd = e.comandname;
// juzga CMD para determinar la dirección de la página girando
Interruptor (CMD)
{{
Caso siguiente:
if (currentPage <(pageCount-)) currentPage ++;
Romper;
Caso previo:
if (currentPage> 0) currentPage-;
Romper;
}
ViewState [PageIndex] = CurrentPage;
listBind ();
}
</script>
<html>
<Evista>
<title> </title>
</ablo>
<Body>
<Form de runat = servidor>
Juntos <Asp: etiqueta id = lBlRecordCount ForeColor = Red Runat = Server />
El actual es <asp: etiqueta id = lblCurrentPage ForeColor = Red Runat = Server /> /<Asp: Labor ID = LBLPageCount ForeColor = Red Raunat = Server />
<ASP: DataList id = score runat = servidor
Headstyle-BackColor =#AAAAdd
alternaTiMStyle-BackColor = Gainsboro
EditItemStyle-BackColor = Yellow
"
<Temtemplate>
Nombre: < %# databinder.eval (Container.dataitem, nombre) %>
<ASP: LinkButton ID = btnselect text = editor commandName = edit runat = server />
</itemtemplate>
</ASP: DataList>
<ASP: LinkButton ID = LBNPREVPAGE Text = Página anterior CommandName = Prev OnCommand = Page_OnClick Runat = Server />
<ASP: LinkButton ID = LBNNEXTPage Text = Next CommandName = NEXT ONCOMMAND = PAGE_ONCLICK Runat = Server />
</form>
</body>
</html>
Los resultados de la ejecución son como se muestra arriba :)
Cuando escribes el programa, lo más importante es pensarlo tú mismo. La pregunta es demasiado simple, nadie está dispuesto a responder todavía.
Pensar mucho y verificar la información realmente está ganando.