La idea de implementación es la misma que la exportación de Excel y Word anterior, que es agregar filas en GridView. Primero, declare los siguientes controles para mostrar el número de página: qué página, cuántas páginas en total, cuántos registros, página de inicio. , página anterior, siguiente Una página, última página controles para paginación
Etiqueta lblCurrentPage;
Etiqueta lblPageCount;
Etiqueta lblRowsCount;
Botón de enlace btnPrimero;
Botón de enlace btnPrev;
Botón de enlace btnSiguiente;
LinkButton btnLast; en el método OnInit de GridView, inicialice estos controles. Inicialice el control de paginación en el método Oninit del control.
anulación protegida anulación OnInit (EventArgs e)
{
this.EnableViewState = verdadero;
lblCurrentPage = nueva etiqueta();
lblCurrentPage.ForeColor = ColorTranslator.FromHtml("#e78a29");
lblCurrentPage.Text = "1";
lblPageCount = nueva etiqueta();
lblPageCount.Text = "1";
lblRowsCount = nueva etiqueta();
lblRowsCount.ForeColor = ColorTranslator.FromHtml("#e78a29");
btnFirst = nuevo LinkButton();
btnFirst.Text = "Página de inicio";
btnFirst.Command += nuevo CommandEventHandler(NavigateToPage);
btnFirst.CommandName = "Buscapersonas";
btnFirst.CommandArgument = "Primero";
btnPrev = nuevo LinkButton();
btnPrev.Text = "Página anterior";
btnPrev.Command += nuevo CommandEventHandler(NavigateToPage);
btnPrev.CommandName = "Buscapersonas";
btnPrev.CommandArgument = "Anterior";
btnNext = nuevo LinkButton();
btnNext.Text = "Página siguiente";
btnNext.Command += nuevo CommandEventHandler(NavigateToPage);
btnNext.CommandName = "Buscapersonas";
btnNext.CommandArgument = "Siguiente";
btnLast = nuevo LinkButton();
btnLast.Text = "Última página";
btnLast.Command += nuevo CommandEventHandler(NavigateToPage);
btnLast.CommandName = "Buscapersonas";
btnLast.CommandArgument = "Último";
base.OnInit(e);
}
Luego, la parte clave del código es cómo agregar estos controles a GridView creando subcontroles, de la siguiente manera:
Agregar controles de paginación en el método de creación de controles secundarios
anulación protegida int CreateChildControls (System.Collections.IEnumerable dataSource, bool dataBinding)
{
int res = base.CreateChildControls(dataSource, dataBinding);
si (Mostrar barra de herramientas)
{
intentar
{
Fila GridViewRow = nueva GridViewRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
TableCell c = nueva TableCell();
c.Ancho = Unidad.Porcentaje(100);
c.ColumnSpan = this.Columns.Count;
fila.Celdas.Agregar(c);
TableCell celda1 = nueva TableCell();
Tabla tabla = nueva Tabla();
TableRow r = nueva TableRow();
tabla.Rows.Add(r);
tabla.Ancho = Unidad.Porcentaje(100);
c.Controles.Agregar(tabla);
r.Celdas.Agregar(celda1);
Literal l1 = nuevo Literal();
l1.Texto = "Página:";
celda1.Controles.Add(l1);
celda1.Wrap = falso;
cell1.Controls.Add(lblCurrentPage);
l1 = nuevo Literal();
l1.Text = "Página/";
celda1.Controles.Add(l1);
celda1.Controls.Add(lblPageCount);
l1 = nuevo Literal();
l1.Text = "Página, total";
celda1.Controles.Add(l1);
celda1.Controls.Add(lblRowsCount);
l1 = nuevo Literal();
l1.Text = "registro";
celda1.HorizontalAlign = HorizontalAlign.Left;
celda1.Controles.Add(l1);
TableCell celda2 = nueva TableCell();
cell2.HorizontalAlign = HorizontalAlign.Right;
celda2.Wrap = falso;
l1 = nuevo Literal();
l1.Texto = "[";
celda2.Controles.Add(l1);
cell2.Controls.Add(btnFirst);
l1 = nuevo Literal();
l1.Texto = "] ";
cell2.Controls.Add(l1);
l1 = nuevo Literal();
l1.Texto = "[";
celda2.Controles.Add(l1);
celda2.Controls.Add(btnPrev);
l1 = nuevo Literal();
l1.Texto = "] ";
cell2.Controls.Add(l1);
l1 = nuevo Literal();
l1.Texto = "[";
celda2.Controles.Add(l1);
cell2.Controls.Add(btnSiguiente);
l1 = nuevo Literal();
l1.Texto = "] ";
cell2.Controls.Add(l1);
l1 = nuevo Literal();
l1.Texto = "[";
celda2.Controles.Add(l1);
cell2.Controls.Add(btnLast);
l1 = nuevo Literal();
l1.Texto = "] ";
celda2.Controles.Add(l1);
r.Celdas.Agregar(celda2);
this.Controls[0].Controls.AddAt(0, fila);
}
atrapar
{
}
}
devolver resolución;
}El siguiente es el evento que maneja la paginación, similar a RowCommand
public void NavigateToPage (remitente del objeto, CommandEventArgs e)
{
btnFirst.Enabled = verdadero;
btnPrev.Enabled = verdadero;
btnNext.Enabled = verdadero;
btnLast.Enabled = verdadero;
cambiar (e.CommandArgument.ToString())
{
caso "Anterior":
si (este.PageIndex > 0)
{
this.PageIndex -= 1
;
romper;
caso "Siguiente":
si (this.PageIndex < (this.PageCount - 1))
{
this.PageIndex += 1
;
romper;
caso "Primero":
this.PageIndex = 0;
romper;
caso "Último":
this.PageIndex = this.PageCount - 1;
romper;
}
si (this.PageIndex == 0)
{
btnFirst.Enabled = falso;
btnPrev.Enabled = falso;
si (this.PageCount == 1)
{
btnLast.Enabled = falso;
btnNext.Enabled = falso;
}
}
de lo contrario si (this.PageIndex == this.PageCount - 1)
{
btnLast.Enabled = falso;
btnNext.Enabled = falso;
}
OnBind();
}De esta manera, se puede realizar fácilmente una localización personalizada. Bienvenido a unirse a nosotros.