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 2.0] Récupérer le contenu d'une cellule de la même ligne pour Javascript


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut [ASP.Net 2.0] Récupérer le contenu d'une cellule de la même ligne pour Javascript
    Bonjour,

    Voilà j'ai une jolie GridView qui ressemble à ça :
    Période - CMAU - COAU- CMVI
    Janvier 2007 - 1025 - 764 - 31
    Février 2007 - 412 - 29 - 347

    J'ai fait en sorte que chaque chiffre soit cliquable, et derrière j'ai du code Javascript qui ouvre une popup. En paramètre j'ai besoin de passer l'ID du contrôle web (LinkCOAU par exemple) et ça c'est OK, mais j'ai aussi besoin de passer le contenu de la cellule "Période" (Février 2007 par exemple). Et là je sèche.

    Voilà mon code. Le but étant de remplacer le texte 'test'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="COAU" HeaderStyle-Font-Bold="false" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
                <ItemTemplate>
                <span id="LinkCOAU" onclick="linkClick(this, 'test')" class="LinkStyle"><%# Eval("COAU") %></span>
                </ItemTemplate>
    </asp:TemplateField>
    Je suppose que c'est quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# GridView1.Row["Période"].Value %>
    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    A mon avis, ce sera plus simple en code-behind.
    Tu génères ton span et ton javascript et basta

  3. #3
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    Je viens de trouver ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# GridView1.Rows[???].Cells[0].Text %>
    Il faut juste que je trouve une propriété qui me donne l'index de la "row" dans laquelle je me trouve pour remplacer les ???.

  4. #4
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    C'est bizarre, quand je mets la ligne <% %> ci-dessus dans le FooterTemplate, ça fonctionne, mais si je le mets dans l'ItemTemplate, ça me sort un OutofRange Exception???

  5. #5
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    Y suffisait de faire :
    Et j'avais la solution sous le nez tout le long...

  6. #6
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Ca donne quoi ton code au final ?
    Ca m'intéresse !

  7. #7
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    La fonction JavaScript LinkClick() ouvre un popup (window.open) vers une autre page, popup.aspx, et au passage je passe en paramètre l'ID du span (LinkCOAU) que je substringue dans le fonction JS pour qu'il corresponde au nom de la colonne (COAU). Je passe également en paramètre la période de la row dans laquelle se trouve le span.

    Au final dans popup.aspx je récupère ces paramètres qui me permettent de faire une jolie commande SQL pour interroger ma base de données et afficher dans le popup des infos sur les données (en l'occurence un chiffre) que contient le span.

    C'est beaucoup de bidouillage car je sais qu'il y a pas mal de fonctions .NET qui pourraient m'aider à en faire autant, mais l'important, c'est que ça marche!

    D'ailleurs au départ j'avais commencé par utiliser un <asp:LinkButton>. Mais il fallait cliquer dessus deux fois pour que ça ouvre le popup (la première fois ça faisait un truc du genre LinkButton.Attributes.Add(Javascript:window.open(blablabla)), et ensuite seulement on pouvait exécuter la fonction JS).

  8. #8
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Euh, nan en fait c'est la syntaxe qui m'intéresse. Genre le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="COAU" HeaderStyle-Font-Bold="false" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
                <ItemTemplate>
                <span id="LinkCOAU" onclick="linkClick(this, 'test')" class="LinkStyle"><%# Eval("COAU") %></span>
                </ItemTemplate>
    </asp:TemplateField>
    Mais corrigé
    Tu le colles où ton Eval("Periode") ?

  9. #9
    Membre confirmé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Points : 598
    Points
    598
    Par défaut
    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TemplateField HeaderText="COAU" HeaderStyle-Font-Bold="false" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
                <ItemTemplate>
                <span id="LinkCOAU" onclick="linkClick(this, '<%# Eval("Periode") %>')" class="LinkStyle"><%# Eval("COAU") %></span>
                </ItemTemplate>
    </asp:TemplateField>
    Désolé je ne peux pas te montrer le code (notamment Javascript) avant lundi, date de mon retour au boulot.

  10. #10
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Nickel, c que que je voulais voir.
    Je pensais pas que ça marchait le coup du '<%# Eval("Periode") %>' dans une chaînes entre "".
    Merci de l'info, ça me réconcilie avec le DataBinding.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2014, 12h11
  2. Récupérer le contenu d'une cellule, grâce à la cellule d'à côté
    Par baggie dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/10/2007, 11h48
  3. Réponses: 9
    Dernier message: 26/09/2007, 16h18
  4. Réponses: 7
    Dernier message: 08/03/2007, 11h08
  5. [VB.NET][FlexGrid]Récupérer le contenu d'une cellule de FlexGrid
    Par kinganasius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2006, 17h11

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