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 :

[C# 2.0]Tansformer une colonne d'un GridView en HyperLink


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut [C# 2.0]Tansformer une colonne d'un GridView en HyperLink
    Salut,


    j'ai un GridView qui affiche des données recuperées par SqlDataAdapter
    comme il est different du SqlDataSource, j'aimerai savoir comment accéder a une colonne pour transformer ces elements en un HyperLink.... je pose cette question car j'ai aucun control sur les colonnes de grid a travers l'UI contrairement a SqlDataSource lorsqu il est associé a un GridView, on peut modifier le colonnes...........................

    merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    hum, tu peux mettre autoGenerateColumn = false
    et alors après tu définis toi même tes colonnes suivant ce que ton DataAdapter te renvoie, la colonne qui devra devenir un HyperLink tu l'as fait devenir en TemplateField, deux parties apparaissent, une avec TextBox (pas besoin tu peux effacer) une avec label, tu n'as qu'a modifier le label en composant HyperLink et dans ca propriété Link qqch tu lui attaches l'url que tu récupères ou construits de la BD

    Fix

  3. #3
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Merci pour ta réponse, j'ai fait ce que tu m as dit et j'ai pu personnaliser l'affichage de mon GridView, mais j'ai eu 2 autres problems, c lors de la mise a jour d'un champ de mon GridView:

    1- j'utilise 2 listebox pour faire un filtrage des doonées ie selectionner les lignes qui corréspondent a un certain critére de filtrage: par pays par date par hotel etc, alors ma clause WHERE change avec chaque filtrage, j'ai du créé plusieurs methodes SELECT chacune avec une clause WHERE differentes, et ça marche a premiére vue, mais lorsque je click sur le boutonLien EDIT d'une ligne donnée le resultat du filtrage disparait (j'obtient tous les enregistrements de ma table et ce n'est plus la ligne que j'ai choisi qui est en mode edition mais plutot la premiére ligne du nouveau affichage), je pense que le problem vient du SELECT mais je ne sais pas comment garder la meme clause WHERE lors de l'edition (la mise a jour)

    2- tu m as dit qu il fallait mettre autoGenerateColumn = false, je l'ai decohé en fait dans la boite de dialogue
    de l'edition du GridView, et aprés ça j'ai eu un problem avec le Update, j'utilise une methode SaveData qui a comme
    parametre une classe qui represente ma table, cette classe contient des property qui retournes les champs de
    l'enregistrement qui va etre edité, mais le problem c que y a des property qui sont bien remplies d'autres non ie
    lorsque je fait le Update j ai besoin du ID de la table pour la clause WHERE
    "Update MaTable Set champ=@nouvelleValeur WHERE ID = @ID", j'ai remarqué que le @ID retourné par la property ID est tjrs = 0
    tandis que d'autres champs ex Nom sont bien retournés, mais dés que je coche Auto-Generate fields tout marche bien
    mais la je ne peut plus personnaliser mon GridView.....................

    merci

  4. #4
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    j'ai résolu le premier des mes deux problems ie garder le filtrage des données lors de la phase d'edition, j'ai du ajouté du code dans Page_Load de la page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(!Page.IsPostBack)
            {
     
            }
            else
            { 
                 //je redifinie la methode select de mon ObjectDataSource
                 //selon le filtre choisi
     
             }
    mais l autre problem perciste

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    ouf
    Bo, est que tu as une propriete Id dans ta Grid, tu mets une colonne en visible = false qui prend comme DataFiel = "TonId", et dans une des proprietes de ta Grid tu as un truc du genre DataKeysName="TonId".

    Via l'event SelectedIndexChange (connait pas par coeur), tu peux via récupérer le DataKeyName.

    Heu sinon, si tu as attaché manuellement un object ou une stored procedure a ta gird, effectivement il risque d'avoir des problèmes avec cette méthode.

    Soit tu fais tout automatiquement, soit tu reconstruis ton objet après ta sélection et tu sauves.

    Fix

  6. #6
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Salut, merci pour ta réponse fix

    c'est effictivement le DataKeysName, a chaque modif de la GridView il etait reinitialisé, je l'ai remi hier et tout marche bien, je ne pouvait pas utiliser la methode automatique car mon select contient des JOIN avec d'atres tables il fallait le faire manuellement en tout c'est le seul moyen que j'ai trouvé...

    quesqu on se sens bien quand ça marche

    merci

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

Discussions similaires

  1. [C#] Comment cacher une colonne d'un GridView ?
    Par dumser1 dans le forum ASP.NET
    Réponses: 15
    Dernier message: 11/12/2009, 15h58
  2. insérer une colonne d'un gridview ds la bd
    Par foryou dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/02/2008, 10h12
  3. Linker une colonne dans un gridview
    Par arnogb69 dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/08/2007, 15h39
  4. Réponses: 7
    Dernier message: 25/05/2007, 10h40
  5. Réponses: 4
    Dernier message: 30/06/2006, 15h26

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