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 :

TemplateField et hyperlinkfield


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut TemplateField et hyperlinkfield
    Bonjour,

    J'ai dans mon tableau une colonne sous forme de lien. Pour cela, j'ai utilisé le contrôle asp:hyperlinkfield.

    Maintenant, je voudrais pour cette colonne lui insérer une image en plus du titre dans son entête et donc passer par une personnalisation de la colonne à l'aide d'un asp:TemplateField.

    Le problème, c'est qu'en utilisant le contôle asp:TemplateField, je n'ai plus acces à hyperlinkfield mais seulement à HyperLink et donc plus possible d'accéder à divers propriété tels que datatextformatstring, datanavigateurlfields, datanavigateurlformatstring.
    Y-a-t-il un moyen de contourner le problème?

    Merci.

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Rien de bien bloquant dans ce cas là. Il est sûr qu'un HyperLinkField est plus pratique, mais dans certains cas on est obligés de s'en passer.

    Ce que tu peux faire : utiliser dans ton TemplateField un HyperLink de base et le formater à ta convenance dans l'évent OnRowDataBound.

    En espérant t'avoir aidé.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Qu'est que tu entend exactement par formater l'HyperLink ?

    Et pour accéder au composant HyperLink du gridview dans le code behind, est ce que le seul moyen est-il d'utiliser GridViewName.Columns[i] ?

    Merci.

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Citation Envoyé par stefsas Voir le message
    Qu'est que tu entend exactement par formater l'HyperLink ?
    Gérer manuellement le formattage du lien, afin de palier à l'absence de properties telles que datatextformatstring, datanavigateurlfields, datanavigateurlformatstring ??

    Citation Envoyé par stefsas Voir le message
    Et pour accéder au composant HyperLink du gridview dans le code behind, est ce que le seul moyen est-il d'utiliser GridViewName.Columns[i]
    Tu peux accéder à un élément d'une ligne comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
    {
        if(e.Row.RowType == DataControlRowType.DataRow)
        {
          // Display the company name in italics.
          e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
        }
    }
    En espérant t'avoir aidé.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Ok d'accord.

    Par contre, j'ai intégré des images dans plusieurs colonnes de mon header et je voudrais qu'elles soit caché au lancement de la page.
    J'ai essayé de mettre cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.Header)
                {
     
                    foreach (Image img in e.Row[0].Cells)
                    {
                        img.Visible = false; 
                    }
     
                }
    mais j'ai un problème de syntaxe au niveau du foreach et je n'arrive pas à trouver la bonne syntaxe?

    Merci.

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Décidément...

    Cells contient des Controls. Donc c'est un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach Control c in e.Row[0].Cells
    C'est dans le foreach que tu feras ton cast en contrôle Image (d'ailleurs tu n'as même pas besoin de faire de cast vu que la property Visible est commune à tous les contrôles

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

Discussions similaires

  1. Questions sur HyperLinkField
    Par reeda dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/08/2007, 15h09
  2. Éditer dans un TemplateField
    Par wazodnuit dans le forum ASP.NET
    Réponses: 6
    Dernier message: 22/08/2007, 02h46
  3. hyperlinkField dans gridview
    Par baby83 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/04/2007, 11h51
  4. GridView et TemplateField
    Par picolo5 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/02/2007, 15h13
  5. [VB.Net][2.0] Comment utiliser un HyperlinkField ?
    Par Arnaud_B dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/06/2006, 09h27

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