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][C#] Clé composée dans un GridView


Sujet :

ASP.NET

Vue hybride

Wishmaster [ASP.NET 2.0][C#] Clé... 02/08/2007, 09h03
DoRiane Bonjour, la méthode pour... 02/08/2007, 09h27
Wishmaster J'ai essayé comme tu as fait... 02/08/2007, 09h32
DoRiane Tu peux essayer comme suit ... 02/08/2007, 10h47
Wishmaster La 2è solution, j'avais déjà... 02/08/2007, 11h10
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut [ASP.NET 2.0][C#] Clé composée dans un GridView
    Bonjour à tous

    Je reprend le sujet "[GridView] Récupérer une valeur d'une colonne invisilbe", j'ai posté une réponse alors qu'il était Résolu et je m'en excuse.

    Ma situation est la suivante.

    Je remplis un GridView à l'aide d'une ObjectDataSource qui traite une procédure stockée.
    J'ai dans ce même GridView, une colonne CommandField avec une bouton select qui me permet (en théorie) d'afficher les détails dans un DetailView toujours à l'aide d'une ObjectdataSource en indiquant que les paramètres sont les valeurs sélectionnées dans le GridView.

    Le truc c'est qu'il ne se passe rien quand je clique sur ce bouton select. La clé qui me permet de sélectionner la bonne est composée de 2 champs.

    Quand je fais un Debug, j'ai pu remarqué que la 2è clé reprennait la valeur de la première.

    Dans mon code HTML, au niveau du gridview je ne met rien en ce qui concerne les DataKeyNames et dans le code behind je rajoute ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string[] dtk1 = new string[] { "clé1" , "clé2" };
            GridView1.DataKeyNames = dtk1;
    J'ai aussi mis la propriété "ReadOnly" de ces 2 colonnes à TRUE et ça ne marche toujours pas.
    Pourtant quand on regarde un peu partout dans les aides, ils disent bien que c'est la virgule qui sert de séparateur entre les champs.

    J'espère avoir été asser clair dans mon explication.

    Merci d'avance pour vos réponse.

  2. #2
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Bonjour,
    la méthode pour déclarer des clés multiples est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GridView1.DataKeyNames = "clé1,clé2";

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Citation Envoyé par DoRiane
    Bonjour,
    la méthode pour déclarer des clés multiples est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GridView1.DataKeyNames = "clé1,clé2";
    J'ai essayé comme tu as fait et ça ne passe pas, il attends une liste.
    Il me met cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error Cannot implicitly convert type 'string' to 'string[]'

  4. #4
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Tu peux essayer comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StringArrayConverter _convert = new StringArrayConverter();
    GridView1.DataKeyNames = (String[])_convert.ConvertFrom("clé1,clé2");
    Autre solution si tu peux,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:GridView ID="GridView1" DataKeyNames="clé1,clé2" runat="server"> ...</asp:GridView>

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 29
    Par défaut
    Citation Envoyé par DoRiane
    Tu peux essayer comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StringArrayConverter _convert = new StringArrayConverter();
    GridView1.DataKeyNames = (String[])_convert.ConvertFrom("clé1,clé2");
    Autre solution si tu peux,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:GridView ID="GridView1" DataKeyNames="clé1,clé2" runat="server"> ...</asp:GridView>
    La 2è solution, j'avais déjà testé sans succès.
    La 1ère, je viens d'y faire à l'instant, fonctionne pas non plus.

    Dans le DetailView, j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:DetailView ID="DetailView1" DataKeyNames="clé1,clé2" runat="server"> ...</asp:DetailView>
    Je ne sais pas si c'est important, mais ma table SQL n'a pa de clé primaire, je l'ai prise telle qu'elle vu que ça fait un bon moment qu'elle existe.

    Je sais pas si c'est exact, je débute en ASP.NET 2.0

  6. #6
    Membre confirmé Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Le problème ne vient probablement pas du DataKeyNames.

    Peux-tu montrer ton code ?

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

Discussions similaires

  1. [ASP.NET 2.0][C#] Comment écrire dans un fichier Excel ?
    Par Louisa dans le forum Accès aux données
    Réponses: 8
    Dernier message: 19/12/2012, 18h43
  2. Réponses: 6
    Dernier message: 18/10/2007, 15h09
  3. [ASP.NET 2.0] Problème d'edition dans un datagrid
    Par florent-k dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/08/2007, 15h52
  4. Réponses: 3
    Dernier message: 18/04/2007, 11h25
  5. Réponses: 5
    Dernier message: 28/11/2005, 09h52

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