Déterminez si le champ existe dans le modèle d'objet côté client?
-
28-09-2020 - |
Question
Je veux vérifier si un champ existe dans mon programme, mais si j'utilise:
if (item[_strContainingFieldName] != null)
{
item[_strContainingFieldName] = fieldValue;
}
Je reçois une erreur indiquant
La propriété ou le champ n'a pas été initialisé.Il n'a pas été demandé ou la demande n'a pas été exécutée.Il peut être nécessaire d'être explicitement demandé.
Donc, je voulais utiliser List.Fields.ContainsField
ou properties.ListItem.Fields.ContainsField
, mais je n'ai oublié que cela ne peut les utiliser que dans l'API du serveur.
Y a-t-il quelque chose de similaire que je peux utiliser en ce moment?L'outil sera une application "à jeter" puisque nous faisons des mises à jour dans les coulisses, donc je ne suis pas trop inquiet pour attraper toutes les possibilités et tout connecter.
Remarque: la langue est C #
La solution
De l'erreur, je pense que vous utilisez CSOM.Si oui, alors vous devez charger les propriétés avant de l'utiliser.
context.Load(item);
context.ExecuteQuery();
Pour vérifier si le champ existe sur l'utilisation suivante:
if(item.FieldValues.ContainsKey("salesdate"))