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 :

Récupérer un bouton dans un GridView et le rendre dynamique


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Récupérer un bouton dans un GridView et le rendre dynamique
    Bonjour tout le monde.

    J'ai un GridView qui expose des données essentiellement booléennes. cela me fait une suite de case que je colorie en rouge ou en verte en fonction de 0 ou 1 qui se trouve dans la case. ça, ça va bien, ça amrche bien.

    Le principe de ceGridView et de faire une sorte de WorkFlow limité. Il s'agit d'une commande qui dispose de plusieurs étapes :
    - commande par le client
    - paiement
    - préparation de la comamnde
    - livraison
    - validation de la livraison

    Un classique du genre, je pense. En début de ligne je reprend le nom du client et le numéro de la comamnde avec un lein, bref rien de bien magistral et ça marche.

    Maintenant on arrive en fin de ligne où je veux placer un bouton (ButtonField) en l'occurence) et je voudrais lui coller une Text et un Comamnde en fonction du statut de 0 ou de 1 de certains champs

    Par exemple si la commande est en statut "Paiement" à 1 (donc payée) le bouton apparait avec "Prépararer la commande" et le CommandeName va déclencher une inscription en base de donnée pour envoyer un message aux préparteurs de commande pour leur donnée le feu vert pour leur boulot.
    Une fois al commande préparée, les préparateurs ont leur outils pour l'indiquer et là je voudrais qu'il n'y est plus de bouton parce que le statut apsse à "livraison" et il n'y a rien à faire, sauf attendre la validation du livreur. Et là le lcient appelera pour signaler la bonne livraison et donc le bouton devra réapparaitre avec un autre Text et une CommandeName

    Voilà, un longue exposé, mais je voualis préciser le périmetre pour être sûr d'aller dans la bonne direction. Donc tout fonction sur les couleurs et l'affichage des données. Je passe par l'évènement RowDataBound pour gérer cela.
    Du coup, je me suis dit que jallais passé au même endroit pour gérer mon bouton. Sauf que sur le premier point il me bloc lorsque je veux le récupérer

    Trés naturellement je mets ça pour le récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim btnAction As ButtonField = CType(e.Row.Cells(7).Controls(0), ButtonField)
    7 étant l'index de la cellule dans lequel il se trouve.
    et il me dit ça :
    Une valeur de type 'System.Web.UI.Control' ne peut pas être convertie en 'System.Web.UI.WebControls.ButtonField'
    Ce que je trouve particulièrement bizarre.
    Une fois se point là solutionner je n'aurais plus qu'à prendre chaque cas de donnée (que je gère déjà pour afficher les couleurs) et gérer le Text et CommandeName du bouton à cet endroit.

    Pouvez m'aider ?

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim btnAction As Button = CType(e.Row.Cells(7).Controls(0), Button)

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci LuteceFalco.

    Bon, j'ai essayé et ça marche pas !
    Mais du coup, je me suis dirigé dans la même direction que toi (oui, j'ai traduis ton idée en partant de ton bout de code !!!

    En fait, c'est un LinkButton et pas un Button.

    Je savais pas qu'il fallait revenir sur un contrôle plus "standard".
    Et du coup, tout c'est enchainé dérrière, c'est super cool.

    J'ai des superbes cases vertes et rouges (on se croirait à Nöël !) et des liens qui apparaissent et disparaissent au gré de la préparation de la commande.

    Génial, merci à toi.

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

Discussions similaires

  1. Récupérer un object dans une gridview
    Par Fredo02 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/01/2014, 13h02
  2. Modifier le texte du bouton dans un gridview
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/02/2011, 18h26
  3. Réponses: 8
    Dernier message: 28/05/2009, 10h40
  4. Position des boutons dans un GridView
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/09/2008, 12h16
  5. ajouter un onClick a un bouton dans un gridView
    Par shirya dans le forum ASP.NET
    Réponses: 10
    Dernier message: 11/07/2008, 16h17

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