J'essaie d'implémenter un DataGrid dans ASP.NET et je souhaite effectuer une pagination personnalisée afin que je n'ai pas à fournir toutes les données en une fois. J'ai passé plusieurs heures à faire des recherches sur internet, mais je n'ai rien trouvé d'utile.DataGrid et la pagination personnalisée ASP.NET
Lorsque je vois la page, je vois le premier ensemble de résultats dans la grille, avec le lien précédent désactivé. Lorsque je clique sur le suivant, je vois à nouveau la première page de la grille avec le lien précédent désactivé. Lors du débogage du code, j'ai vérifié que le gestionnaire d'événements MyGrid_PageIndexChanged() n'est jamais appelé.
J'ai inclus mon code simplifié ci-dessous. J'ai modifié les noms de variables et les méthodes omises pour me concentrer sur le problème de pagination de DataGrid.
Dans le fichier ASPX:
<asp:DataGrid ID="myGrid" runat="server" GridLines="None" UseAccessibleHeader="true" AutoGenerateColumns="false" AllowPaging="true" AllowCustomPaging="true" PageIndexChanged="MyGrid_PageIndexChanged">
<PagerStyle Mode="NextPrev" NextPageText="Next >" PrevPageText="< Previous" />
<Columns>
<asp:BoundColumn HeaderText="Title" DataField="Name" />
<asp:BoundColumn HeaderText="Date" DataField="Date" />
</Columns>
</asp:DataGrid>
Et dans le fichier CS:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myGrid.PageSize = 20;
myGrid.VirtualItemCount = GetNumItems();
BindMyGrid();
}
}
protected void MyGrid_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{
myGrid.CurrentPageIndex = e.NewPageIndex;
BindMyGrid();
}
private int GetNumItems()
{
return 500;
}
private void BindMyGrid()
{
Data[] array = GetDataFromInternetSomehow();
this.myGrid.DataSource = array;
this.myGrid.DataBind();
}
private class Data
{
public string Date { get; set; }
public string Name { get; set; }
}
Toute réflexion sur ce serait très apprécié.
Génial - merci. L'ajout de "On" l'a fait fonctionner - une telle différence que deux lettres peuvent faire. Je pense que tout en lisant des échantillons sur internet je viens de voir l'attribut et j'ai pensé "yup, j'ai compris". Bizarre qu'il n'y avait pas une erreur de compilation ou d'exécution si. – Saqib
@SaqibJe sais que c'est ancien, mais marquez cette réponse comme réponse acceptée. – eglasius