Bonjour,
J'aurais souhaité savoir s'il était posssible de gérer l'affichage des pages d'un repeater un peu comme un datagrid avec ses index de pages.
Est-ce, svp, possible?
Cordialement
Merci d'avance
Pinocchio
Version imprimable
Bonjour,
J'aurais souhaité savoir s'il était posssible de gérer l'affichage des pages d'un repeater un peu comme un datagrid avec ses index de pages.
Est-ce, svp, possible?
Cordialement
Merci d'avance
Pinocchio
Oui, c'est possible mais c'est assez tordut. Je l'ai fait une fois. Je retrouve le code et je le post.
il faut creer un champs private :Voilà ce que j'ai mis dans mon load :Code:private PagedDataSource pds_Page;
Code:
1
2
3
4
5
6
7
8
9
10
11 if (Session["CurrentPage"]==null) { Session["CurrentPage"] = 0; int_Page = 0; //Response.Write("Session null initialisée à : " + Session["CurrentPage"].ToString()); } else { //Response.Write("CurrentPage : " + Session["CurrentPage"].ToString()); int_Page = Convert.ToInt32(Session["CurrentPage"]); }
J'ai une méthode setPaging() :Code:
1
2 pds_Page = new PagedDataSource(); chargement();
et voilà le code se trouve dans la méthode de chargement de la page :Code:
1
2
3
4
5 private void SetPaging() { pds_Page.AllowPaging = true; pds_Page.PageSize = 200; }
Et voilà pour des boutons qui gère le changement de page :Code:
1
2
3
4
5
6
7
8
9 pds_Page.DataSource = _catalogue.GetRootProducts().Tables[0].DefaultView; SetPaging(); pds_Page.CurrentPageIndex = int_Page; int index = pds_Page.CurrentPageIndex + 1; lbl_TotalPages.Text = index.ToString() + " sur " + pds_Page.PageCount; cmd_Preview.Enabled = !pds_Page.IsFirstPage; cmd_Next.Enabled = !pds_Page.IsLastPage; Repeater1.DataSource = pds_Page ; Repeater1.DataBind();
Voilà, en esperant t'avoir aidéCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 private void cmd_Next_Click(object sender, System.EventArgs e) { if((int) Session["CurrentPage"] < pds_Page.PageCount) { int_Page = (int) Session["CurrentPage"] + 1; } Session["CurrentPage"] = int_Page; chargement(); } private void cmd_Preview_Click(object sender, System.EventArgs e) { if((int) Session["CurrentPage"]> 0) { int_Page = (int) Session["CurrentPage"] - 1; } Session["CurrentPage"] = int_Page; chargement(); } private void cmd_PremPage_Click(object sender, System.EventArgs e) { int_Page = 0; Session["CurrentPage"] = int_Page; chargement(); } private void cmd_DerPage_Click(object sender, System.EventArgs e) { int_Page = pds_Page.PageCount - 1; Session["CurrentPage"] = int_Page; chargement(); }
Merci beaucoup,
Je me bats pour le premier chargement car il affiche tout mais sinon c'est impec.
Merci beaucoup.
Cordialement
Pinocchio
PS : résolu de A à Z mauvaise écriture de ma part