1

Sur ma page d'accueil, je veux un webpart simple qui permet aux utilisateurs de remplir rapidement une entrée dans une liste.SharePoint: FormField dans une partie Web personnalisée?

La liste ont, disons, trois champs: titre (texte), le corps (texte riche), catégorie (recherche). Je ne veux pas utiliser le DataFormWebPart standard car j'ai un peu de code-behind qui remplit également certains champs cachés techniques de ma liste (en fait, je n'exclue pas le DataFormWebPart, mais je n'ai pas trouvé comment l'utiliser avec le code derrière).

donc j'ai commencé à mettre en œuvre un webpart personnalisé. Parce que je ne veux pas avoir à gérer manuellement chaque entrée sur le terrain, j'ai commencé à utiliser le contrôle FormField, qui choisissent automatiquement le contrôle de rendu, et de fournir une propriété Value avec le format correct:

<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" /> 

Ce code est pas suffisant, je dois spécifier le listid:

<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" ListId="{title list guid}" /> 

Cela fonctionne très correctement. Je peux dans le code accéder au fldTitle.Value pour récupérer l'entrée de l'utilisateur.

BUT Je dois inclure la partie Web dans une fonctionnalité correctement déployée et déployée, qui peut être activée. La partie Web cible toujours la même liste, mais comme la liste est également instanciée dans la fonction (élément ListInstance), je ne peux pas connaître le Guid à l'avance.

J'ai essayé d'utiliser plusieurs techniques pour définir la liste ID à la volée, mais sans succès.

J'ai aussi « reflectored » le SP dll à remarquer la classe FormComponent utilisent un « contexte » qui est fixé par ListFormWebPart.

Enfin, mes questions sont les suivantes:

  • est-il la bonne façon de créer un webpart d'entrée personnalisé sur la page d'accueil (et non une forme de liste personnalisée)?
  • comment puis-je garder le comportement du FormField (choisir le droit de contrôle et de gérer l'entrée et sa conversion au format de stockage)?
  • Est-ce que je dois créer un ListFormWebPart personnalisé?
  • Puis-je jouer avec ControlTemplates?

grâce à l'avance pour l'aide ... Je suis aux prises avec ce cas simple pour les jours maintenant ...

+0

Vous devez définir ListId propert programmation de l'événement PageLoad dans votre page où le champ placé – devi

Répondre

0

Je pense que la personnalisation des modèles de formulaire est la meilleure façon de personnaliser les formulaires de liste. Puisque les modèles de formulaires personnalisés sont implémentés en tant que contrôles utilisateur, vous pouvez ajouter le code que vous voulez. Voir l'article suivant: http://www.codeproject.com/KB/sharepoint/SharePointListForms.aspx

+0

lien sympa ... Je cherchais une explication comme celui-ci pendant un certain temps. THX ;) –

Questions connexes