IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#]Apparence speciale du datagrid


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut [C#]Apparence speciale du datagrid
    Bonjour,
    Je cherche un moyen de faire apparaitre "bizarement" un datagrid.
    Je veux que le nombre de ligne ne soit pas toujours le meme.
    Voici un exemple de ce que je veux:
    ------------------------------------------------------------------
    Nom | telephone(s) |Repondeur |ville(s) visitée(s) |
    ------------------------------------------------------------------
    Dupont |01.42.43.44.45 | Oui |paris;lilles;lyon |
    |------------------|--------------------------------------
    |03.23.24.25.26 | Non | |
    |------------------|--------------------------------------
    |06.10.10.11.12 | Non | |
    |------------------|--------------------------------------
    |05.12.11.10.12 | Oui | |
    -------------------------------------------------------------------
    Martin |01.42.43.44.45 | Non |Marseille |
    -------------------------------------------------------------------
    Bon |05.11.12.12.14 | Oui |Bordeaux;Toulouse; |
    -------------------------------------------------------------------

    Enfin, partout le nombre de ligne est identique sauf pour le "Nom".
    Si quelqu un a une idée comment je pourrai proceder, alors je le remercie d avance car j en ai vraiment aucune idée.
    Cette exemple est vraiment le type de datagrid que je souhaite obtenir...

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Désolé mon schema est mal passé. J ai une colonne Nom (avec Martin, Dupond et Bon), la 2e colonne Telephone (avec Dupond qui en a plusieurs sur plusieurs lignes, et Martin puis Bon qui en ont un sur une ligne). Pour le reste (Repondeur et villes visitées), le nombre de ligne est identique a celui de telephone.

  3. #3
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    fais le dans un editeur de texte avec els tabulation et place le entre des balises [code]... Elles concervent les espaces

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Ok donc ca donnerai ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    --------------------------------------------------------
    Nom    | telephone(s)  |Repondeur  |ville(s) visitée(s) |
    -------|---------------|-----------|--------------------|
    Dupont |01.42.43.44.45 | Oui       |paris;lilles;lyon   |
           |---------------|-----------|--------------------|
           |03.23.24.25.26 | Non       |                    |
           |---------------|-----------|--------------------|
           |06.10.10.11.12 | Non       |                    |
           |---------------|-----------|--------------------|
           |05.12.11.10.12 | Oui       |                    |
    -------|---------------|-----------|--------------------|
    Martin |01.42.43.44.45 | Non       |Marseille           |
    -------|---------------|-----------|--------------------|
    Bon    |05.11.12.12.14 | Oui       |Bordeaux;Toulouse;  |
    -------|---------------|-----------|--------------------|
    Bref meme si le schema passe mal, personne a une idée pour proceder!!!!

  5. #5
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Peut-être en faisant des tests sur la ligne précédente dans le itemdatabound pour voir si le nom est déjà apparu, si c'est le cas on incrémente le rowspan

    C'est juste une idée qui me passe par la tête

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Qu entends tu par Rowspan????
    Si quelqu un a une autre idée pour proceder car ca fait plusieurs jours que je bloque la dessus

  7. #7
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Est ce que tu saurais faire la requete avec les infos répétées?

    En fait ce tableau resume les numéro de tel, uen fois que tu aura pleinde ligne du type :

    dupont 01 02 03 04 05 marseille
    dupont 02 03 04 05 06 marseille
    dupont 09 08 07 06 05 marseille
    durant 02 05 08 07 04 paris

    tu aura deja quelque chose de focntionnel...

    aprés, en testant l'item precedent, tu devra pouvoir definir si tu affiche ou pas ton nom sur la ligne...

  8. #8
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Le rowspan est une propriété html des cellules qui permet de fusionner des cellules sur plusieurs lignes

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Pour le moment c est a peu pres ca le resultat de ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    -------------------------------------------------------- 
    Nom    | telephone(s)  |Repondeur  |ville(s) visitée(s) | 
    -------|---------------|-----------|--------------------| 
    Dupont |01.42.43.44.45 | Oui       |paris  | 
    -------|---------------|-----------|--------------------| 
    Dupont |03.23.24.25.26 | Non       | lilles             | 
    -------|---------------|-----------|--------------------| 
    Dupont |06.10.10.11.12 | Non       | lyon               | 
    -------|---------------|-----------|--------------------| 
    Dupont |05.12.11.10.12 | Oui       |                    | 
    -------|---------------|-----------|--------------------| 
    Martin |01.42.43.44.45 | Non       |Marseille           | 
    -------|---------------|-----------|--------------------| 
    Bon    |05.11.12.12.14 | Oui       |Bordeaux;Toulouse;  | 
    -------|---------------|-----------|--------------------|

  10. #10
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    pour enlever les nom, moi je creerais une variable private dans la webform, et je lui assignerais l idUtilisateur a la fin de mon itemDataBound.

    Au debut, tu teste l id, et si c'est le meme que celui d avant, tu te demerde pour vider la valeur nom...(ou ne pas l afficher)

    Pour les villes, ca me parais bien difficile par contre

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Ok merci les conseils, je vais commencer a tester ca

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Par défaut
    Suite à la lecture du post, je me sentait généreux et j'ai écrit une fonction
    en c# que tu pourrais utiliser pour faire la transformation de la colonne
    nom de ton tableau. Cette fonction pourrait être traduit en javascript,
    mais je te conseil de la laisser en code behind
    bonne journée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    //Déclaration des variables
    int intIndexPremier = 0;
    int intNbRepetition = 0;
    string strNomPrecedent = "";
     
    //On boucle dans toutes les lignes
    for(int i=0; i<Table1.Rows.Count; i++){
    	//Si le nom dans le première cellule est le différent que celui de 
    	//la cellule précédente, alors on réinitialise les variable
    	if(strNomPrecedent != Table1.Rows[i].Cells[0].Text){
    		strNomPrecedent = Table1.Rows[i].Cells[0].Text;
    		intNbRepetition = 1;
    		intIndexPremier = i;
    	//sinon, on supprime la cellule, et on augmente le rowspan de la 
    	//première cellule contenant le nom
    	}else{
    		intNbRepetition++;
    		Table1.Rows[i].Cells.RemoveAt(0);
    		Table1.Rows[intIndexPremier].Cells[0].RowSpan = intNbRepetition;
    	}
    }

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Merci a toi MoTUmBo.....je vais tester ca.....

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Salut MoTUmBo, je suppose que je dois mettre ceci dans le ItemDataBound?
    Sinon je voulais egelement savoir pour "Table1.Row", moi j utilise un reader et
    je fais un simple DataSource et DataBind.
    Je ne voix pas comment obtenir le ".Row".
    Désolé si ma question te semble idiote

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Par défaut
    Voila j'ai adapté le code pour le data reader
    pour obtenir le .row tu fais DataGrid1.Items[le row]
    Le item databound n'est pas la bonne place,
    car cette méthode est executée trop tot
    tu peut le faire dasn el preRender, c'Est la dernière étape
    avent d'afficher le datagrid
    tu pourais aussi le mettre dans une fonction et l'appeler à la
    fin du formLoad

    j'espere que ca aidera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    private void DataGrid1_PreRender(object sender, System.EventArgs e) {
    		//Déclaration des variables
    		int intIndexPremier = 0;
    		int intNbRepetition = 0;
    		string strNomPrecedent = ""; 
    		for(int i=0; i<DataGrid1.Items.Count; i++){
    			//Si le nom dans le première cellule est le différent que celui de
    			//la cellule précédente, alors on réinitialise les variable
    			if(strNomPrecedent != DataGrid1.Items[i].Cells[0].Text){
    				strNomPrecedent = DataGrid1.Items[i].Cells[0].Text;
    				intNbRepetition = 1;
    				intIndexPremier = i;
    				//sinon, on supprime la cellule, et on augmente le rowspan de la
    				//première cellule contenant le nom
    			}else{
    				intNbRepetition++;
    				DataGrid1.Items[i].Cells.RemoveAt(0);
    			       DataGrid1.Items[intIndexPremier].Cells[0].RowSpan = intNbRepetition;
    			}
    		}
    	}

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    merci beaucoup je vais tester ca

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Je viens de tester et ca a l air de bien marcher.....je te remercie vraiment car je galere dessus depuis un moment

  18. #18
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Par défaut
    j'suis pas un top programmeur, mais quand je peut aider
    ca fais toujours plaisir

  19. #19
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Sinon il était possible de faire un DataGrid dans un DataGrid

  20. #20
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 75
    Par défaut
    Salut Ditch, je viens de lire ton information sur faire un datagrid dans un datagrid....je ne savais meme pas que c etait possible.
    Ca consiterai en quoi exatement????

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [C#] Comment modifier l'apparence d'un DataGrid?
    Par DBBB dans le forum ASP.NET
    Réponses: 8
    Dernier message: 15/07/2005, 14h41
  2. Réponses: 3
    Dernier message: 28/02/2003, 17h06
  3. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  4. Réponses: 1
    Dernier message: 03/02/2003, 23h18
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo