2011-01-26 24 views
5

Aunque, las preguntas de alguna manera similares a esto se han pedido varias veces, pero la pregunta aún no se ha resuelto. Aquí está la pregunta: Tengo un GridView que está contenido en un contenedor de pestaña AJAX que está dentro de un control UpdatePanel. Gridview funciona excelente y sus métodos correspondientes se disparan con precisión, pero cuando habilito paging (por ejemplo) después de hacer clic en la página 2, el GridView se oculta. aquí está mi PageIndexChanging() método:ASP.net La paginación de Gridview no funciona dentro de UpdatePanel

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    UpdatePanel2.Update();   
} 

Por qué causa la paginación GridView deje de funcionar correctamente? ¿Que puedo hacer?

+0

http://forums.asp.net/t/1091963.aspx - Posible solución. –

Respuesta

6

La solución es que usted debe rellenar el conjunto de datos que se utiliza para rellenar el gridview, cada vez que se cambia el índice de página. De esta forma, puede asegurarse de que en cada devolución de datos separada que se haya desencadenado por el número de página de la vista de cuadrícula, se completarán los resultados.

3

investigación adicional:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

Los controles que no son compatibles con UpdatePanel controla

Los siguientes controles ASP.NET no son compatibles con las actualizaciones parciales de página, y son, por tanto, no está diseñado para funcionar dentro de un control UpdatePanel:

  • Controles GridView y DetailsView cuando su propiedad EnableSortingAndPagingCallbacks está establecida en verdadero. El valor predeterminado es falso.
3

Acabo de probar el código anterior. Tuve el mismo problema y ahora está funcionando bien.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;   
    GridView1.DataBind(); 
    // UpdatePanel2.Update(); <-- Remove this line from your code. 
} 

Tengo GridView dentro del panel de actualización. ¿Escribiste tu evento PageIndexChanging en tu archivo .aspx también?

Espero que esto ayude.

-1

Para hacerlo, debe volver a establecer el origen de datos en el evento de cambio de índice de página. El rendimiento será más bajo, pero esa es la forma en que puede hacer que funcione.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.DataSource = ;//Set again the datasource 
    GridView1.PageIndex = e.NewPageIndex; 
    GridView1.DataBind(); 
    UpdatePanel2.Update(); 
} 
+0

@Farshid ya respondió esto. – AsifAli72090

Cuestiones relacionadas