[Résolu][ASP.NET][C#] Rajouter une couche apres le DataBind

Rajouter une couche apres le DataBind [Résolu][ASP.NET][C#] - C#/.NET managed - Programmation

Marsh Posté le 17-03-2005 à 18:19:04    

Bonjour !
 
Je viens de créer un DataGrid que je rempli grâce a un DataSet provenant d’une base de donnée.
Je fais donc :

Code :
  1. this.dgGroups.DataSource = this.objDSGroups.Groups.DefaultView;
  2. this.dgGroups.DataBind();


 
Où dgGroups est mon DataGrid et objDSGroups mon DataSet.
 
Ce que je voudrais faire, et c’est très probablement possible, ce serait binder certains champs.
C'est-à-dire que certaines colonnes sont des booléens et j’aimerais afficher dans mon DataGrid "X" pour true et "" pour false.
 
J’ai fais un truc de barbare qui certes marche mais j’aimerais savoir s’il n’existe pas une fonction qui permet de faire ca "tout seul" ... une fonction déjà faite évitant ces boucles a la noix.
Voilà ce que j’ai fais que j’aimerais modifier :

Code :
  1. for(int i = 0; i < this.dgGroups.Items.Count; i++)
  2. {
  3.   for(int j = 0; j < this.dgGroups.Columns.Count; j++)
  4.   {
  5.     if(this.dgGroups.Items[i].Cells[j].Text == "True" )
  6.       this.dgGroups.Items[i].Cells[j].Text = "X";
  7.   }
  8. }


 
Connaitriez vous cette function "magique" ?
(je suis débutant en asp.net ainsi qu’en C# … ca promet)
 
Merci beaucoup
Worldofdada


Message édité par Worldofdada le 23-03-2005 à 11:04:04
Reply

Marsh Posté le 17-03-2005 à 18:19:04   

Reply

Marsh Posté le 17-03-2005 à 22:20:26    

Si tu veux tu peux faire cette méthode là pour éviter tes boucles :
Dans ton fichier .aspx tu remplaces la ligne de ton booléen (<%#DataBinder.Eval(Container.DataItem, "booleen" )%> ) par quelque chose comme <%#afficherBooleen(DataBinder.Eval(Container.DataItem, "booleen" ))%>
 
Ensuite dans ton .cs tu écris le corps de la fonction afficherBooleen(). Ca ne doit pas être très compliqué. Je connais seulement la syntaxe de VB.Net mais ça devrait être un truc du genre :  
 

Code :
  1. public string afficherBooleen(bool monBooleen) {
  2.   if (monBooleen) {
  3.     return("xxx" );
  4.   }
  5.   else {
  6.     return("" );
  7.   }
  8. }


Reply

Marsh Posté le 17-03-2005 à 22:29:56    

Tiens, un article qui devrait te plaire ;)

Reply

Marsh Posté le 18-03-2005 à 09:05:47    

Yonel :
Le problème, c'est que je n'ai pas de DataBinder.Eval(Container.DataItem ....).
 
Le DataGrid se rempli simplement pas un DataBind() dans mon Page_Load. Je vais voir ce que je peux faire pour remplir les champs un a un  ;)  
 
FlorentG : merci pour l'article, je vais voir ca  :)  
 
Merci ... je continue mes recherches et si vous avez des idées supplémentaires, je suis prenneur.

Reply

Sujets relatifs:

Leave a Replay

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