Pagination Gridview et objets métier
Bonjour,
je développe une application asp.NET 3tiers : présentation, service (BLL), données(DAL).
Je met en oeuvre une recherche multi critères dont les résultats doivent être affichés dans un gridview. La fonction de recherche comporte une dizaine de paramètres et retourne une liste d'objets (List<>) que je place dans une variable session pour passer les résultats à ma page contenant le gridview. Ca donne :
Code:
1 2
| Session["projets"] = BLL.Projets.RechercherProjets(mes 10 paramètre);
Response.Redirect("mapagederésultats.aspx"); |
dans mapagederesultats.aspx :
Code:
1 2 3 4 5 6 7 8 9 10
|
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
projets = (List<Projet>)Session["projets"];
GridView.DataSource = projets;
GridView.DataBind();
}
} |
Mon soucis c'est que je voudrais mettre en place la pagination et le tri pour ce gridview (ici pas d'objectDataSource, car j'ai des paramètres qui sont des arraylists, et puis ca voudrait dire que je dois rapeler ma fonction recherche une seconde fois avec 10 paramètres). La pagination ne fonctionne pas , même en mettant dans la fonction PageIndexChanging :
Code:
1 2 3 4 5 6 7
|
protected void PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView.PageIndex = e.NewPageIndex;
GridView.DataSource = projets;
GridView.DataBind();
} |
ce qui est surement du au fait que je bind directement le gridview avec ma liste d'objet sans passer par un objectDataSource ou un SqlDataSource.
Je précise que mes résultats s'affichent bien dans le gridview, si je met AllowPaging=true la première page s'affiche correctement mais les autres ne fonctionnent pas : aucune erreur de compilation seulement le gridview disparait et rien ne s'affiche.
J'ai tout bien mis SortExpression et AllowPaging comme il faut...
Des suggestions ?