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 :

Fusionner des cellules dans un tableau dynamique


Sujet :

ASP.NET

  1. #1
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Italie

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut Fusionner des cellules dans un tableau dynamique
    Bonjour à tous,

    j'ai un problème qui semble trivial mais dont je n'arrive pas à me dépêtrer d'une manière élégante.

    Voila, j ai une liste d'objet qui possede une zone et une description.

    J ai une listview qui lors du databind m affiche cette liste dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    zone1|desciptionA
    zone1|desciptionB
    zone1|desciptionC
    zone1|desciptionD
    zone2|desciptionE
    zone2|desciptionF
    je voudrais, vous vous en doutez n'avoir qu'une seule fois zone 1 et zone 2.

    Comment vous y prendriez vous? dois je jouer avec les css ? faire une bidouille sur un évènement de databinding ?

    merci d avance de vos pistes de reflexion,

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : juillet 2005
    Messages : 5 052
    Points : 8 735
    Points
    8 735
    Par défaut
    Je jouerais sur le OnDataBound et si zone de la ligne courante = zone de la ligne précédente alors j'affiche pas la zone et je colspan

    GL

  3. #3
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Italie

    Informations forums :
    Inscription : octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Merci Lutece.

    Me rappeler cela m' a donné une autre idée. En fait, je cree une liste d'objet a partir d'une instruction linq afin d'afficher les lignes de mon tableau.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     public class ligne
        {
            public int Id { get; set; }
            public ZonaS Zona { get; set; }
            public ParticolareZona Description { get; set; }
     
            public bool IsZonaVisible { get; set; }
            public int ZonaRowSpan { get; set; }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var structure = from r in ctx.matable
                           select new ligne
                            {
                                Id = r.Id,
                                Zona = r.ZonaScheda,
                                Description = r.Description ,
                                ZonaRowSpan = 1
                            };
    et j ai juste modifie ma classe ligne pour prendre aussi les arguments necessaires a son affichage :IsZonaVisible ,ZonaRowSpan .

    Ensuite je fais un petit tour de ma list pour les mettre à jour :


    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
      //inizia la prima riga
                int indexFirstLine= 0;
                Struttura[0].IsZonaVisible = true;
     
                for (int i = 1; i < Struttura.Count; i++)
                {
                    if (Struttura[i].Zona.Id == Struttura[indexFirstLine].Zona.Id)
                    {
                        //same text , we do not display the line
                        Struttura[i].IsZonaVisible = false;
                        Struttura[indexFirstLine].ZonaRowSpan++;
                    }
                    else
                    {
                        //different text , we display the line
                        indexFirstLine = i;
                        Struttura[i].IsZonaVisible = true;
                    }
                }
    Ensuite , il y a plus qu'à databinder la ligne de façon habituelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <td runat=server id=C_TD_ZonaDescrizione 
           visible=<%# ((ligne)Container.DataItem).IsZonaVisible %>
           rowspan=<%# ((ligne)Container.DataItem).IsZonaVisible ? ((ligne)Container.DataItem).ZonaRowSpan : 0  %>
            valign=middle>
            <%# ((ligne)Container.DataItem).Zona.Descrizione %>
    </td>
    Au lieu de passer après comme tu me le disais, je passe avant, le seul truc négatif c'est que j'itère une fois de plus ma liste, mais le code ensuite s'en trouve plus léger aussi... je vais surement changer tout mon code de toutes façon avoir un tableau ne me convient pas trop...

    Merci en tout cas de ton aide!

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Vxi3] Fusionner des cellules dans un tableau croisé
    Par beaucourt claudine dans le forum Webi
    Réponses: 4
    Dernier message: 23/08/2011, 17h43
  2. fusionner des cellules d'un tableau
    Par eyolas dans le forum Général JavaScript
    Réponses: 52
    Dernier message: 23/04/2007, 10h42
  3. Fixer la taille des cellules dans un tableau HTML ?
    Par bilou95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/03/2007, 17h10
  4. [C# 1.1] Comment fusionner des cellules dans un datagrid ?
    Par absolute_beginner dans le forum ASP.NET
    Réponses: 5
    Dernier message: 09/11/2006, 17h45
  5. [Conception] Recuperer des données dans un tableau dynamique
    Par Tartanjet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2006, 01h28

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