[ASP .NET] Page de news

Page de news [ASP .NET] - C#/.NET managed - Programmation

Marsh Posté le 01-02-2006 à 23:23:29    

Bonjour,
J'ai fait une page web en ASP .NET (VB .NET) qui affiche des news qui sont stoquées dans une base de données. Je les affiche à l'aide d'un repeater. Cependant, toutes les nouvelles sont affichées sur une seule page. Ce que j'aimerais faire, c'est afficher par exemple 10 news par page et avoir un petit lien Suivant et Précédent et les numéros des pages existantes selon le nombre de news dans la BD en bas de chaque page comme on voit souvent sur les sites web. Pourriez-vous m'expliquer comment faire s.v.p. Je suis débutant en ASP .NET.
 
Merci.
Bye

Reply

Marsh Posté le 01-02-2006 à 23:23:29   

Reply

Marsh Posté le 02-02-2006 à 13:16:31    

La solution bête et méchante (en C#, dsl je parle pas VB) :

Code :
  1. <asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" PageSize="5"></asp:datagrid>
Code :
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.         // rajouter un handler au DataGrid pour le changement de page
  4.         this.DataGrid1.PageIndexChanged += new DataGridPageChangedEventHandler(OnPageChanged);
  5.         // tu récupères tes données
  6.         DataSet ds = ....
  7.         // tu les colles dans le Datagrid
  8.         this.DataGrid1.DataSource = ds;
  9.         // si t'es pas en PostBack
  10.         if(!this.IsPostBack)
  11.                 // faire ton DataBind
  12.                 this.DataGrid1.DataBind();
  13. }
  14. // Si la page a changé
  15. protected void OnPageChanged(object sender, DataGridPageChangedEvent args)
  16. {
  17.         // modifier l'index de la page dans le DataGrid
  18.         this.DataGrid1.CurrentPageIndex = args.NewPageIndex;
  19.         // refaire le DataBind
  20.         this.DataGrid1.DataBind();
  21. }


---------------
Tout est normal, suffit de comprendre pourquoi.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed