De todo lo que he leído, parecía que agregar paginación a un control ListView debería ser muy simple, pero no funciona para mí. Después de agregar los controles ListView y DataPager al formulario y conectarlos juntos, estoy obteniendo un comportamiento muy extraño. El DataPager limita correctamente el tamaño de página de ListView, pero hacer clic en los botones de búsqueda no afecta en absoluto a ListView. Los botones de búsqueda parecen pensar que están haciendo su trabajo, ya que el último botón está desactivado cuando va a la última página, etc., pero el ListView nunca cambia. Además, se necesitan dos clics en el DataPager para lograr que haga algo, es decir, al hacer clic en Última vez no se hace nada, pero al hacer clic una segunda vez, el DataPager reacciona como si la última página estuviera ahora seleccionada.ListView con DataPager no funciona
Lo único que se me ocurre es que estoy vinculando el DataSource en tiempo de ejecución (a un objeto LINQ), no usando un control LinqDataSource ni nada. ¿Alguien ha visto este comportamiento? ¿Estoy haciendo algo mal? Aquí está el código que estoy usando:
<asp:DataPager ID="HistoryDataPager" runat="server" PagedControlID="HistoryListView" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="true" ShowLastPageButton="true" />
</Fields>
</asp:DataPager>
<asp:ListView ID="HistoryListView" runat="server">
...
</asp:ListView>
En el código subyacente:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
HistoryListView.DataSource = From x in myContext.myTables ...
DataBind()
End If
End Sub
No es necesario que se databind * nuevo *. Pero sí, puedes solucionar este problema mediante la vinculación de datos en prerender. –
Esto es lo más estúpido que he visto en ASP.net (aunque estoy seguro de que es peor). Pero gracias por encontrarlo. Nunca pensé que habría un error pre_render. – Dexter
@Syam cuando uso la preimpresión omite la lista El origen de datos de la vista resulta ser nulo (al hacer clic en el botón siguiente) y luego no se muestra ningún registro ... ¿alguna suposición? – tariq