[ASP .Net / C#] Gridview : Personnalistation du Pager

Gridview : Personnalistation du Pager [ASP .Net / C#] - ASP - Programmation

Marsh Posté le 01-07-2010 à 16:00:35    

Bonjour,
 
J'ai une application ASP .Net qui requete une base de données pour afficher un gridview paginé.
 
J'ai affiché le pager en bas du gridview, il s'affiche correctement, j'ai bien ajouté le callback permettant de changer de page (GridView_PageIndexChanging) et ca fonctionne.
 
Mon probleme est sur la présentation du pager, il s'affiche de manière très sérée comme suit : <<...123456789101112...>> et c'est peu lisible.
 
Je souhaiterai mettre des espaces entre chaque caracteres, j'ai essayé avec la CSS :
 

Code :
  1. .pagerTheme
  2. {
  3.     letter-spacing: 6px;
  4. }
  5. <PagerStyle BackColor="#64665E" ForeColor="White" HorizontalAlign="Center"
  6.     Font-Strikeout="False" VerticalAlign="Middle" Wrap="True"
  7.     CssClass="pagerTheme" />


 
mais en fait tous les caracteres sont espacés et c'est peu lisible aussi.
 
C'est bizarre je ne trouve rien pour faire ca, si quelqu'un connait la une méthode adéquat ?
 
Merci

Reply

Marsh Posté le 01-07-2010 à 16:00:35   

Reply

Marsh Posté le 05-07-2010 à 17:18:40    

Bonjour,
 
je viens de me repencher sur le problème, je n'ai pas trouvé grand chose, juste qu'il s'agirait d'utiliser un repeater.
 
Je ne connaissais pas, si quelqu'un a des liens d'exemple pour utiliser un repeater afin de créer mon pager ?
 
Merci !

Reply

Marsh Posté le 05-07-2010 à 18:28:22    

Le repeater est un contrôle MS qui te génère des blocs identiques bindés sur une série d'éléments (la même chose qu'on ferait au travers d'une boucle dans un autre langage web dynamique).

 

Tu peux aussi passer par une dropdownlist, ça évite le repeater, c'est rapide à mettre en place, et souple à l'usage. Mais pas très design.

 

Par contre je ne comprend pas ton pb avec le pager de base...

 

C'est quoi ta source de données ? Qqch qui se prête facilement à la pagination ? (par exemple une collection manipulable par Take/Skip en LINQ ?
Pour une version avec repeater je pourrai te donner plus tard un bout de code tout fait avec différents types de rendus (par exemple paginateur en << < #page > >>, ou encore les numéros de pages, éventuellement entrecoupés par des points de suspension s'il y en a trop).


Message édité par TotalRecall le 05-07-2010 à 18:29:55

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 06-07-2010 à 17:52:01    

Bonjour et merci pour cette réponse,
 
Le problème de mon pager est que je n'arrive pas à mettre d'espaces entre les nombres : <<...12345678910111213...>>
mes utilisateurs trouvent ca illisible à l'usage.
 
J'utilise un gridview sans ObjectDataSource (je n'avais pas l'habitude d'en utiliser), en fait c'est une requête LINQ que je fait dans mon code, qui me retourne une liste d'item et ensuite je fais les instructions suivantes :
 

Code :
  1. monGridView.DataSource = maListeDitems;
  2. monGridView.DataBind();


 
Ce qui m'a obligé par exemple à recoder l'évennement OnPageIndexChanged() ...etc
 
C'est possible que ce ne soit pas la meilleure méthode mais c'est celle que j'ai utilisé difficile aujourd'hui de changer.
 
Merci

Reply

Marsh Posté le 06-07-2010 à 20:29:54    

J'avais compris pour le problème de rendu avec les espaces, ce que je voulais dire c'est que je ne comprend pas pourquoi il t'est impossible de le corriger.
J'ai toujours implémenté mon propre pager donc je ne sais pas quel genre de code génère le pager par défaut (un truc plus ou moins atroce connaissant le html vu par MS) mais je présume qu'il y a au minimum des <a> avec la possibilité de mettre une cssclass globale autour, donc la possibilité d'y lier un
.monpager a
{
     padding : 0px 4px;
} ou qqch du genre...

 

Je te propose en premier lieu cette approche pour corriger très vite le pb et t'éviter de revoir ta méthode de binding, sinon suis mon post précédent...

 

Comme je disais je n'utilise jamais le pager par défaut donc je raisonne intuitivement, mais je suis sûr qu'on trouve aussi des tutos sur la "bonne" utilisation et customisation du pager...


Message édité par TotalRecall le 06-07-2010 à 20:31:57

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-07-2010 à 11:44:04    

Excellent, le problème est corrigé avec la css que tu m'as passé.
 
Cela répond exactement à ce dont j'avais besoin Merci !

Reply

Sujets relatifs:

Leave a Replay

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