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 :

evenement RowDataBound - hyperlink


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut evenement RowDataBound - hyperlink
    bonsoir,
    j'ai dans un gridview un hyperlink qui me permet d'ouvrir un popup
    selon la valeur de ce hyperlink je veux le désactiver
    je m'explique:
    si par exp l'hyperlink a la valeur X je veux l'afficher sinon je veux l'afficher comme un string
    je sais que ça doit etre traité dans l'evenement RowDataBound
    mais je savais pas comment
    MERCI

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    voilà de quoi faire ton test..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            if (DataBinder.Eval("TonChamp", e.Row.DataItem) == "X")
            {
     
            }

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    Merci bien pour la réponse
    mais comment dois je faire pour le désactiver dans le corps de la boucle If???

  4. #4
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    voilà ton bonheur...

    modifie ton index de "CELLS" en fonction de ton cas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HyperLink link = e.Row.Cells[9].Controls[0] as HyperLink;
                if (DataBinder.Eval("TonChamp", e.Row.DataItem) == "X")
                {
                    link.NavigateUrl = "";
                }
     
            }

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    le code que vous m'avez fourni m'a généré 2 erreurs:

    Error 1 La méthode surchargée correspondant le mieux à 'System.Web.UI.DataBinder.Eval(object, string)' possède des arguments non valides

    Error 2 Argument '2'*: impossible de convertir de 'object' en 'string'

  6. #6
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    c'est plutot ça je crois...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataBinder.Eval(e.Row.DataItem,"TonChamp").ToString()

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    j'ai tenté autre chose mais ça ne fonctionne pas


    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
     
     
    protected void GVinsert_RowDataBound(object sender, GridViewRowEventArgs e)
        {
     
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[6].Text == "X")
                {
                    ((HyperLink)e.Row.Cells[6].Controls[0]).Visible = true;
                }
                else
                {
                    (e.Row.Cells[6].Controls[0]).Visible = false;
                }
            }

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    j'ai trouvé une autre solution,ça fonctionne mais mais le probleme est que tout les hyperlinks de la colonne sont devenus disabled
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <asp:templatefield headertext="Validation">
    	<itemtemplate>
    		<asp:hyperlink id="HyperLink1" runat="server" navigateurl='<%# GetNavigateUrl(Eval("valideI").ToString()) %>'
    			text='<%# Eval("valideI") %>'   Enabled='<%# DataBinder.Eval(Container.DataItem, "valideI") == "X" %>'   />
    	</itemtemplate>
                     </asp:templatefield>
    c a d meme si la valeur de l'hyperlink = X, l'hyperlink est disabled

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    en fait il me manque .ToString()
    voila le code complet et fonctionnel qui désactive un hyperlink pour une valeur donnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     
                     <asp:templatefield headertext="Validation">
    	<itemtemplate>
    		<asp:hyperlink id="HyperLink1" runat="server" navigateurl='<%# GetNavigateUrl(Eval("valideI").ToString()) %>'
    			text='<%# Eval("valideI") %>'   Enabled='<%# DataBinder.Eval(Container.DataItem, "valideI").ToString() == "X" %>'   />
    	</itemtemplate>
                     </asp:templatefield>

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

Discussions similaires

  1. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09
  2. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46
  3. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

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