Question

J'ai un contrôle qui fait référence à un EDC (ajouté à la liste en tant que recherche) que j'ai ajouté à une page d'application via le balisage suivant :

<SharePoint:FormField runat="server" 
   id="Industry" 
   ControlMode="New" 
   FieldName="Industry" 
   />

Le problème est qu'il génère ce code HTML (notez les attributs de valeur) :

<select name="bigLongName" id="bigLongId" title="Industry">
   <option value="0">Compact Machine Solutions</option>
   <option value="0">Earthmoving Excavating</option>
   <option value="0">Earthmoving Grading</option>
   <option value="0">Paving</option>
   <option selected="selected" value="0">Terrain</option>
</select>

Qu’ai-je fait de mal ici ?

Était-ce utile?

La solution

Nous avions créé la colonne en tant que recherche standard dans le code qui a créé la liste.Cela a provoqué le <select> à afficher plutôt qu'un sélecteur externe.Je n'ai pas réussi à trouver une explication adéquate sur la façon de créer une colonne de données externes (BDC) dans le code, mais j'ai réussi à y parvenir.

Voici ce que j'ai fait:

  1. Dans SharePoint Designer, j'ai parcouru le site, les types de contenu externes, puis j'ai sélectionné les types de contenu externes que je souhaitais ajouter en tant que colonne de données externe.
  2. J'ai cliqué sur Exporter le modèle BDC et je l'ai enregistré dans un emplacement facile à trouver.
  3. Je l'ai ouvert dans NotePad++ et utilisé les valeurs du XML pour trouver les champs requis pour créer la colonne.

SPBusinessDataField industryBcsField = currentList.Fields.CreateNewField("BusinessData", "Industry") as SPBusinessDataField;

industryBcsField.SystemInstanceName = "BusinessProcess"; //Corresponds to <LobSystemInstance Name="BusinessProcess"> in the BDC Model
industryBcsField.EntityNamespace = "NameSpace"; //Corresponds to <Entity Namespace="Whatever is in these quotes" in your BDC Model.
industryBcsField.EntityName = "Industry";
industryBcsField.HasActions = true;
industryBcsField.BdcFieldName = "Industry"; //The field you wish to display in the list

currentList.Fields.Add(industryBcsField);
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top