J'essaie de parcourir la collection Splistitem.versions pour trouver le dernier élément de la liste approuvée.
Mon élément de liste a trois versions: les deux premiers sont approuvés, le dernier est dans le projet. Mais mon code dit qu'ils sont tous dans le brouillon! S'il vous plaît aider! P>
3 Réponses :
item.versions [Index] renvoie une instance Splistitemversion et SplistitemVersion.Listitem renvoie le parent Splistitem. Donc, votre versionEditem se retrouvera par référence à la même objet que l'élément, et vous vérifiez la même version encore et encore.
Je pense que vous voulez réellement vérifier P>
if (item.Versions[index].Level == SPFileLevel.Published) { // check item.Versions[index].VersionLabel }
Cela a fonctionné, merci! N'est-ce pas un peu maladroit d'obtenir le parent comme ça? Et les termes sont mélangés si vous me demandez quand dans SharePoint, vous appelez son approbation, je suppose que sur la liste sa modération et sur l'élément de la liste son niveau !?
Mon code a fini par écrire comme ceci:
if (doclist.EnableVersioning) { SPListItemVersionCollection allVersions = item.Versions; // Iterate through all versions foreach (SPListItemVersion version in allVersions) { if (version.Level == SPFileLevel.Published) { itemFound = version.ListItem; } } }
Appel d'élément trouvé = item de la version.List; retournera la dernière version qui pourrait ne pas être le dernier approuvé. Il faut se méfier
La façon dont Mattias recommande et que vous avez implémentées est la meilleure façon de le faire. C'est un peu maladroit mais toujours efficace, car les articles sont commandés du plus récent au plus ancien. Cela signifie que vous êtes susceptible d'obtenir une correspondance sur la version publiée rapidement.
Développer sur le MSDN SplistitemverionCollection Collection (spécialement Sebastian Wojciechowski): P>
// Current version of the item (note: this may be a draft) SPListItem.Versions[0] // Previous version of the item SPListItem.Versions[1] // First version of the item SPListItem.Versions[SPListItem.Versions.Count - 1]
Merci très utile! Et merci d'avoir édité mon orthographe bâclée! :)
Aucun problème. Edité pour aider les utilisateurs à trouver votre question plus tard.
En tant que lien que vous avez inclus maintenant, indique SharePoint 2013 et que le contenu de la communauté que vous avez référencé est joint à la version précédente: msdn.microsoft.com/en-us/library/...
@Chloraphul merci que le lien est fixé maintenant
Cela semble être la solution correcte. J'ai vu de nombreux extraits de code où ils traitent des éléments.versions [item.versions.count - 1] comme la version la plus récente qui est fausse.