c# - paginacion - ASP.Net GridView no muestra los números de página
pagination datagridview asp net (3)
Para que Paging funcione, su fuente de datos debe ser compatible. Si no es así, como una DataTable, entonces tienes que hacer esto tú mismo.
Este código debería ayudar.
OnPageIndexChanging="myGridview_PageIndexChanging"
protected void myGridview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gv = (GridView)sender;
DataView dv = gv.DataSource as DataView;
DataTable dataTable = dv.Table;
gv.DataSource = myDataTable;
gv.PageIndex = e.NewPageIndex;
gv.DataBind();
}
He revisado varios artículos y tutoriales, pero no puedo resolver esto. Todo básicamente dice, "oh solo enciende AllowPaging, ¡y listo!" Cuando lo hago, sí, puedo ver los controles de paginación bajo GridView en la Vista de diseño, pero cuando los compilo, no puedo ver los números de página en el sitio en ejecución.
Una cosa que noté diferente de todos los ejemplos, es que hago el trabajo de datos desde el código subyacente. Por lo tanto, mi GridView es simplemente:
<asp:GridView ID="gvlatest" runat="server" Width="99%" AllowSorting="True"
onrowdatabound="gvlatest_RowDataBound" onsorting="gvlatest_Sorting"
AllowPaging="True" PageSize="2" />
Lo que quiero decir al hacer el trabajo de datos desde atrás, es que todas las columnas y todo, se construyen a partir de un código en una DataTable, y luego configuro el DataSource de GridView en la DataTable. Por ejemplo, una versión extremadamente abreviada de lo que tengo:
DataTable temptable = new DataTable();
DataColumn titlecol = new DataColumn();
titlecol.ColumnName = "Title";
temptable.Columns.Add(titlecol);
gvlatest.DataSource = temptable;
gvlatest.DataBind();
Supongo que se trata de una preferencia personal, y para ser sincero, nunca aprendí a usar los controles DataSource y todos los ejemplos están en uso, donde se crea GridView en el archivo .aspx con las columnas, fuente de datos , etc. Así que supongo que mi problema radica en esa dirección general ...
La pregunta es, ¿qué estoy haciendo mal? ¿Por qué los números de página no aparecen? ¿Configurar realmente "AllowPaging" es todo lo que tengo que hacer?
tiene que usar el evento que cambia page_index en la vista de cuadrícula para implementar la paginación en la vista de cuadrícula, consulte este enlace:
http://forums.asp.net/t/1245611.aspx
Espero eso ayude
Puede deshabilitar una columna en particular y agregar paginación
protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow)
//----------------------------------Grid view column invisible------------------------------------------------------------
if (Request.QueryString.Get("show") == "all")
GridView1.Columns[0].Visible = true;
else
GridView1.Columns[0].Visible = false;
//-------------------------------------------------------------------------------------------------------------------------
}
protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
gvbind();// Grid View Binded
}
// Source Code
allowpaging="true" OnPageIndexChanging="Gridview1_PageIndexChanging" pagesize="2"