none
[MOSS2007]Lookup and content type RRS feed

  • Question

  •  Bonjour à tous,

    Je suis sur un développement où j'utilise plusieurs listes qui sont liées entre elles via des champs lookup.

    Chaque liste est construite via des colonnes de site, des types de contenu, un définition de liste, jusque là c'est classique.

    Le problème est que la définition de site qui contient l'ensemble de ces listes sert à créer N sites.

    Ma question concerne les champs lookup : au déploiement de la solution les colonnes de site et les types de contenu pour chaque liste  sont créés dans la racine de la collection de site. Comment puis-je procéder pour que lors de la création du site, les champs lookup puissent être créés avec en paramètres les listes auxquelles ils sont liés, et soient rajoutés à la liste.

     

    J’espère avoir été clair dans mon explication, sinon dite le moi je m’efforcerai de décrire plus précisément le problème.

     

    Merci de votre aide.

     

     

    mardi 3 juin 2008 09:18

Toutes les réponses

  • Bonjour

     

    Je pense que le projet CodePlex situé sur http://www.codeplex.com/SP2007LookupFields répondra à vos attentes (il devrait ! Wink)

    mardi 3 juin 2008 13:20
  • Tout d'abord merci pour ton aide.

    Dejà utilisée ce projet, mais dans mon cas, le problème n'ai pas de créer les lookup, mais plutot vu que j'utilise des content type pour mes listes, si je crée un lookup sans le rattacher au content type, dans ma liste il n'apparait pas en création ou en modification, ni en visualisation.

     

    mardi 3 juin 2008 15:53
  • Bonjour

     

    Si je comprends bien, il vous manque juste l'état d'ajout au content type de cette colonne de site c'est bien ça ?

     

    Pourquoi ne pas reprendre alors le code de ce projet et rajouter l'ajout de la colonne lookup ?

     

    Dans ce cas, il vous faudrait qqch comme ceci :

    Code Snippet
    // Création du champ
    oWeb.Fields.AddLookup("monlookup", list.ID, list.ParentWeb.ID, isRequired);
    SPFieldLookup lookup = (SPFieldLookup)oWeb.Fields["monlookup"];
    lookup.AllowMultipleValues = false;
    lookup.Group = "Groupe colonne";
    lookup.LookupField = "ChampDeLaListe";               
    lookup.Update(true);
    // Ajout au type de contenu
    SPContentType ct = oWeb.ContentTypes["MonContentType"];
    ct.FieldLinks.Add(new SPFieldLink(lookup));                   
    ct.Update(true);   

     

     

                
    mercredi 4 juin 2008 08:13
  • Merci Gat,

     

    J'ai utilisé en partie ta solution, dès que j'ai fini je ferai sur mon blog un article là dessus.

     

    lundi 9 juin 2008 08:16