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 :

2 questions ObjectDataSource


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut 2 questions ObjectDataSource
    Bonsoir,

    J'ai donc 2 questions relatives aux ObjectDataSource.

    1. J'ai une DropDownList liée à une source de données par un ObjectDataSource. Tout fonctionne bien. Le soucis, c'est que j'aimerais qu'il y ait une ligne en plus dans ce dropdownlist pour qu'il n'y ait aucune sélection (une ligne blanche en somme) sans modifier la source de données.
    2. De plus, j'ai un gridView lié à autre ObjectDataSource (qui est d'ailleurs filtré par la dropDownList de la première question --> c'est la raison pour laquelle je veux y ajouter une ligne neutre). Le problème ici c'est que j'aimerais passer une variable lors de la sélection de la ligne comme par l'exemple l'id de l'objet affiché, sachant que cet id n'est pas affiché dans le gridView.


    Voilà mes deux questions

    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    1. madropdownlist1.selectedindex =-1
    2. Normalment, tu peux donner un id à tes items.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    1) ca ne fonctionne pas. La dropdDownList n'a pas de ligne vierge

    2) pourrais tu être un peu plus précis sur ce point là ? ^^

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    eh bien, quand tu configures ton datasource de ta drapdownlist, à un moment, tu as "Sélectionnez un champ de donnée à afficher dans la dropdownlist", et aussi sélectionnez un champ de donnée pour la valeur de dropdownlist"
    Alors, tu met ce que tu affiche dans la donnée et l'id dans la valeur.

    sinon pour la selection, ça doit etre à cause du dataasource, je n'arrive pas à trouver.

  5. #5
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    1. Sur ta DropDownlist, ajoute un élément et ajoute l'attribut AppendDataBoundItem.

    2. Ajoute un paramètre pour la sélection dans le DataSource du GridView de type ControlParameter et indique qu'il faut prendre la valeur de ta DropDownList.

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Merci Neptune, AppendDataBound fonctionne bien en effet .

    En ce qui concerne mon 2eme probleme, il n'est pas lié à ma dropdownList.
    Je veux que, lorsque je clique sur la ligne de mon datagrid, je transmette l'id de l'objet correspondant au code behind (et non la ligne sélectionnée comme c'est le cas par défaut me semble-t-il). Sachant que je n'affiche pas l'id de l'objet.

    merci

  7. #7
    Membre confirmé Avatar de dachir
    Inscrit en
    Juillet 2006
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 148
    Par défaut
    Q1: il est très compliquer d'ajouter une ligne vierge à ta Dropdonlist (ddl). Mais voila comment j'ai contourner la situation.
    1. Tu mets la propriété appenddatabounditems a True, pour ajouter une ligne saisie aux lignes de ta table
    2. Tu cliques sur la propriété items pour accéder aux éléments de la Dropdownlist ou tu es censé saisir ta ligne blanche. Dans la BD Editeur de Collection de ListItems, Tu mets un point(.) dans la propriété text ( si tu ne mets rien, il prendra la valeur de la propriété value) et dans la propriété value, tu mets -1 ou une valeur qui ne se trouve pas dans ta table. Si tu ne le fais pas, tu vas planter la gridview en EditMode.

    Dans le pire des cas tu peux créer la ligne vierge dans ta table.

    Je pense que j'ai répondu à la deuxième question aussi
    Allez bonne chance

  8. #8
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par dachir Voir le message
    Dans le pire des cas tu peux créer la ligne vierge dans ta table.
    Très mauvaise idée :-)

  9. #9
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Bonsoir,

    je me permets de relancer car je n'ai pas trouvé comment faire au niveau du gridView pour passer l'id de l'objet au code behind sachant que cet id n'est pas affiché...

    Merci

  10. #10
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Citation Envoyé par riric85 Voir le message
    Bonsoir,

    je me permets de relancer car je n'ai pas trouvé comment faire au niveau du gridView pour passer l'id de l'objet au code behind sachant que cet id n'est pas affiché...

    Merci
    Ajoute une colonne qui contient l'ID, précise qu'elle ne doit pas être visible.

  11. #11
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Salut Neptune.

    Je ne vois pas comment faire ta méthode.
    Quelles sont les étapes pour faire ca ?

    Merci

  12. #12
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Je vois comment mettre la colonne invisible mais du coup, qd je veux récupérer la valeur de la colonne dans le code behind en faisant :
    grid.Rows[selectedIndex].Cells[0].Text

    Ca ne marche pas.

  13. #13
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Pas le bon PC devant moi mais essaie grid.Rows[selectedIndex].FindControl("NomDeTonLabel") en mettant évidement un Label dans la colonne qui contiendra l'ID.

  14. #14
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Merci pour ton aide.

    Mais je n'arrive pas à le faire fonctionner.
    Voici mon code dans le rowdatabound :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label idLabel = new Label();
                idLabel.ID = "ID";
                idLabel.Text = ((Compagny)e.Row.DataItem).ID.ToString();
                e.Row.Cells[0].Controls.Add(idLabel);
            }

    et dans la récup :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Label id = (Label)grid.Rows[selectedIndex].Cells[0].FindControl("ID");

    mais id est null :/

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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