2011-01-12 20 views
19

Mam gridview, którego używam do wyświetlania wyników zbioru danych. Problem polega na używaniu stronicowania w nim. Ale kiedy kliknę na stronę #, oznacza to, że nie poradziłem sobie z tym wydarzeniem. Czy muszę ponownie powiązać zestaw danych?PageIndexChanging w GridView w ASP.NET

Dzięki

Odpowiedz

28

Spróbuj następującego kodu:

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

Dzięki .. To działa. .. Nie wiedziałem, że ten numer strony zwiększa się wcześniej. – JCTLK

+0

'Viewstate' powinno być preferowane, aby uniknąć nadmiernych wywołań db na stronie Zmień wydarzenia – Vikrant

4

Wypróbuj go

W pageload

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

W 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(); 
    } 
} 

W pageindexchanging

GridView1.PageIndex = e.NewPageIndex; 

loadGrid(); 
1

w VB.NET, że nie ma dużej różnicy w C#, po prostu usunąć średniki na końcu każdej linii

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 
Powiązane problemy