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

SharePoint .NET Discussion :

liste déroulante personnalisée


Sujet :

SharePoint .NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 114
    Points : 71
    Points
    71
    Par défaut liste déroulante personnalisée
    J'ai créé une colonne personnalisée qui récupère les éléments d'une autre liste.
    J'arrive à sauvegarder la valeur correctement mais lorsque je passe en mode modification, le champ sélectionné de ma liste déroulante est le premier de la liste et non plus la valeur sauvegardée.

    Comment faire pour garder ce choix et ne pas avoir forcement besoin de sélectionner la valeur dans la liste?

    Si jamais voici mon code
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    protected override void CreateChildControls()
            {
     
                if (Field == null) return;
     
                base.CreateChildControls();
     
                if (ControlMode == Microsoft.SharePoint.WebControls.SPControlMode.Display)
                    return;
     
                try
                {
                    //On pointe sur la liste Webs définie dans le user control
                    Societe = TemplateContainer.FindControl("Societe") as DropDownList;
                    Societe.SelectedIndexChanged += new EventHandler(Societe_SelectedIndexChanged);
     
                    //Vérification que tous les contrôles ont bien été retrouvés
                    if (Societe == null)
                        throw new ApplicationException("Failed to initialize controls");
     
                    //On ajoute une entrée bidon pour forcer l'utilisateur
                    //à faire un choix qui délenche le onchange
                    Societe.Items.Add("Choose...");
     
     
                    //récupère la liste des sociétés
                    SPWeb web = SPContext.Current.Web;
                    SPList list = web.Lists["Société"];    //nom de la liste
     
                    for (int i = 0; i < list.ItemCount; i++)
                    {
                        Societe.Items.Add(list.Items[i]["Nom de la société"].ToString());
                    }
     
                }
                catch (Exception Ex)
                {
                    //on lance une app exception qui sera 
                    //catchée par SP
                    throw new ApplicationException(Ex.Message);
                }
            }
     
     
    public override object Value
            {
                get
                {
                    EnsureChildControls();
                    return Societe.SelectedValue;
                }
            }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 114
    Points : 71
    Points
    71
    Par défaut
    Il suffisait que je mette le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public override object Value
            {
                get
                {
                    EnsureChildControls();
                    return Societe.SelectedValue;
                }
                set
                {
                    EnsureChildControls();
                    Societe.SelectedValue = (string)this.ListItemFieldValue;
                }
            }

  3. #3
    nassim12
    Invité(e)
    Par défaut
    Au fait, je veux faire la mème chose (créer un customField) de type lookup sur une liste précise.

    J'arrive pas à le faire. Pouvez-vous me guider ?

    Merci.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 114
    Points : 71
    Points
    71
    Par défaut
    Quel est ton but recherché?
    Car si tu cherche seulement à lier une colonne d'une liste à une autre liste regarde là:
    http://www.developpez.net/forums/sho...d.php?t=582707

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/01/2012, 19h46
  2. Liste déroulante personnalisée
    Par jbrasselet dans le forum ASP.NET
    Réponses: 7
    Dernier message: 14/06/2011, 10h22
  3. liste déroulante personnalisée
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/09/2007, 09h40
  4. MsgBox Personnalisée (liste déroulante)
    Par Halzard dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/06/2007, 16h32

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