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
Essayez le code suivant:
protected void grdView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
FillGrid();
grdView.PageIndex = e.NewPageIndex;
grdView.DataBind();
}
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();
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
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