PageIndexChanging dans GridView dans ASP.NET
-
10-10-2019 - |
Question
J'ai un gridview que j'utilise pour afficher un résultat de données. Le problème est que je utilise la pagination en elle. Mais quand je clique sur la page # il est dit que je ne l'ai pas traité l'événement. Ai-je besoin de lier de nouveau l'ensemble de données ???
Merci
La solution
Essayez le code suivant:
protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
FillGrid();
grdView.PageIndex = e.NewPageIndex;
grdView.DataBind();
}
Autres conseils
Essayez
Dans le pageload
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
loadGrid();
}
}
Dans le 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 le PageIndexChanging
GridView1.PageIndex = e.NewPageIndex;
loadGrid();
Dans VB.net, il n'a pas beaucoup de différence avec C #, vous retirez 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
Vous devez définir la .pageindex avant la liaison de données! Dans le cas contraire, vous auriez besoin des clics supplémentaires qui en fait doubles les appels de méthode BindData. Ce qui suit est mon code testé vb.
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