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 :

[ASP.Net] Ajout d'une ligne dans un GridView - Bug sur les liens des lignes


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Points : 124
    Points
    124
    Par défaut [ASP.Net] Ajout d'une ligne dans un GridView - Bug sur les liens des lignes
    Bonjour,
    Me voici face à un bug bizarre, lorsque je construis mon gridView avec les données, je rajoute une ligne lorsque le type des données ajoutées changent. Je regroupe par type.

    Le problème c'est que dans les données affichées, il y en a une pour laquelle il s'agit d'un LinkButton avec un évènement onClick. Jusque là rien de spécial. Mais lorsque je clique sur ce lien et que je souhaite récupérer l'attribut présent dans le contrôle, il ne le trouve pas et ne trouve même plus le texte du lien qui vient d'être cliqué ????

    Si j'enlève l'ajout de ma ligne, ça marche bien. Alors y'a t'il quelque chose à faire de spécial pour ajouter une ligne ?
    Voici le code behind que j'utilise pour ajouter ma ligne

    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
    if (e.Row.RowType == DataControlRowType.DataRow){
     
    Label niveauDoc = (Label)e.Row.FindControl("niveauDoc");  
    if (!level.Equals(niveauDoc.Text))  {    
       level = niveauDoc.Text;    
    //Construct the header line
       Table t = (Table)gvListe.Controls[0];
       GridViewRow r = new GridViewRow(-1, -1, DataControlRowType.Separator, DataControlRowState.Normal);
       r.ID = "HeaderLevel_Row" + level;
       TableCell c = new TableCell();
       c.CssClass = "cellLevelDoc";
       c.ID = "HeaderLevel_Cell_" + level;
       c.ColumnSpan = e.Row.Cells.Count;
       c.Text = level;
       r.Cells.Add(c);
       t.Rows.AddAt(t.Rows.Count-1, r);  
    }
    }

  2. #2
    Membre actif Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    pourrez vous mieux nous expliquer ton pb car il n'est clair ton truc

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    Citation Envoyé par D4rkTiger Voir le message
    Bonjour,
    Me voici face à un bug bizarre, lorsque je construis mon gridView avec les données, je rajoute une ligne lorsque le type des données ajoutées changent. Je regroupe par type.

    Le problème c'est que dans les données affichées, il y en a une pour laquelle il s'agit d'un LinkButton avec un évènement onClick. Jusque là rien de spécial. Mais lorsque je clique sur ce lien et que je souhaite récupérer l'attribut présent dans le contrôle, il ne le trouve pas et ne trouve même plus le texte du lien qui vient d'être cliqué ????

    Si j'enlève l'ajout de ma ligne, ça marche bien. Alors y'a t'il quelque chose à faire de spécial pour ajouter une ligne ?
    Voici le code behind que j'utilise pour ajouter ma ligne

    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
    if (e.Row.RowType == DataControlRowType.DataRow){
     
    Label niveauDoc = (Label)e.Row.FindControl("niveauDoc");  
    if (!level.Equals(niveauDoc.Text))  {    
       level = niveauDoc.Text;    
    //Construct the header line
       Table t = (Table)gvListe.Controls[0];
       GridViewRow r = new GridViewRow(-1, -1, DataControlRowType.Separator, DataControlRowState.Normal);
       r.ID = "HeaderLevel_Row" + level;
       TableCell c = new TableCell();
       c.CssClass = "cellLevelDoc";
       c.ID = "HeaderLevel_Cell_" + level;
       c.ColumnSpan = e.Row.Cells.Count;
       c.Text = level;
       r.Cells.Add(c);
       t.Rows.AddAt(t.Rows.Count-1, r);  
    }
    }
    Ce code permet dans un GridView d'ajouter une ligne de "Groupe" en quelque sorte. Les résultats qui s'affichent appartiennent à une catégorie et la ligne que je veux ajouter est justement le nom de cette catégorie.

    Cela donne donc de façon schématique ceci :

    Catégorie 1
    ligne résultat 1
    ligne résultat 2
    ligne résultat 3
    ligne résultat 4
    Catégorie 2
    ligne résultat 5
    ligne résultat 6
    ....

    Dans une "ligne résultat", j'ai une colonne "Document" qui contient un lien vers le document enregistré. Sauf que lorsque j'ajoute la ligne "Catégorie", les liens sont décalés. Le premier lien en dessous de Catégorie 1 provoque une erreur et je ne vois pas pourquoi ?

    J'espère que j'ai mieux expliqué mon problème

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    dans ce que je vois tu rajoutes une ligne mais je ne vois pas de controle linkbutton. donc pas de click event.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Points : 124
    Points
    124
    Par défaut
    C'est normal car il n'y en a pas dans la ligne que je rajoutes mais il y en a dans chaque ligne de résultat

    C'est justement le souci, c'est que je ne modifies pas les liens, je ne fais qu'ajouter des lignes de titre et ça casses les liens présents dans les lignes de résultats.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    rebind la gridview quand tu as ajouté ta ligne.

Discussions similaires

  1. Afficher les numéros des lignes dans l'éditeur
    Par hammag dans le forum Sql Developer
    Réponses: 5
    Dernier message: 02/04/2024, 09h45
  2. Réponses: 6
    Dernier message: 04/11/2011, 08h34
  3. ET logique sur les attributs des lignes !
    Par izioto dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/08/2010, 15h52
  4. Réponses: 1
    Dernier message: 19/09/2007, 11h19
  5. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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