web-dev-qa-db-fra.com

PageIndexChanging dans GridView dans ASP.NET

J'ai une vue de grille que j'utilise pour afficher un résultat d'ensemble de données. Le problème est que j'utilise la pagination. Mais lorsque je clique sur la page #, cela indique que je n'ai pas géré l'événement. Dois-je relier l'ensemble de données ???

Merci

23
JCTLK

Essayez le code suivant:

protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    FillGrid();
    grdView.PageIndex = e.NewPageIndex;
    grdView.DataBind();
}
31
KGWR

Essayez-le

Dans la pageload

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        loadGrid();
    }
}

Dans la pageindexchanging

private void loadGrid()
{
    using (your_bankEntities context = new your_bankEntities()) //use your connection .edmx
    {
        var jmDados = (from jm in context.yourdbo  orderby jm.your fieldkey  
                         select new
                           {
                               jm.Field1,
                               jm.Field2,
                               jm.Field3,
                               jm.Field4,
                               ........ 
                               jm.n

                           }).ToList();
        GridView1.DataSource = jmDados;

        GridView1.DataBind();
    }
}

Dans la pageindexchanging

GridView1.PageIndex = e.NewPageIndex;

loadGrid();
4
user2714046

Dans VB.net, cela n'a pas beaucoup de différence avec C #, vous supprimez simplement les points-virgules à la fin de chaque ligne

Private Sub myGridview_PageIndexChanging(sender As Object, e As GridViewPageEventArgs) Handles myGridview.PageIndexChanging

   LoadGridView() //Call your method to load the data into the grid.
   myGridview.PageIndex = e.NewPageIndex
   myGridview.DataBind()

End Sub
1
Peter Mankge

Vous devez définir le .PageIndex avant de lier des données! Sinon, vous auriez besoin de clics supplémentaires qui en fait double les appels de méthode BindData. Ce qui suit est mon code vb testé.

Private Sub GridViewL_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridViewL.PageIndexChanging

    GridViewL.PageIndex = e.NewPageIndex
    BindData()  ' your method to bind data to the grid
End Sub
0
chingNotCHing