Vue en mode feuille de données (Access Web DataSheet) et répertoires : attention !
Par Edgar le mercredi 11 mars 2009, 18:05 - SharePoint 2007 - Lien permanent
Bonjour à tous,
Ce post fait suite au précédent (non ??? si si) sur le problème des répertoires et des éléments dans les listes SharePoint.
Pour l'édition en masse des éléments dans les listes SharePoint il existe le mode "feuille de données" qui permet grâce à un composant ActiveX de voir le contenu de la liste au travers d'une interface type 'Microsoft Access'. Ce mode fonctionne très bien pour l'édition y compris avec les répertoires. Ainsi lorsque je me déplace dans un répertoire je ne vois que les éléments de ce répertoire dans la feuille de données, ce qui est parfait.
"Et donc ?" ce disent les plus perspicaces d'entre vous...
Et donc, le problème vient d'ailleurs (comme la vérité...ouais facile je sais...). Le soucis c'est lors de l'ajout de nouveaux éléments. Dans ce cas le comportement est plutôt frustrant puisque peu importe où je me trouve dans la liste les éléments sont créés à la racine...
Après plusieurs recherches et tentatives diverses et infructueuses, je me suis résolu à faire un gestionnaire sur l'évènement ItemAdded qui me permet de déplacer mon élément dans le bon répertoire en fonction de la valeur d'un champ de l'item (oui je sais c'est moche mais là je ne savais pas vraiment quoi faire d'autre à part changer complètement le développement...).
Voici donc le gestionnaire d'évènement :
public override void ItemAdded(SPItemEventProperties properties)
{
using(SPWeb web = properties.OpenWeb())
{
SPListItem item = properties.ListItem;
SPFile dummyFile = web.GetFile(item.Url);
this.DisableEventFiring();
dummyFile.MoveTo(web.Url + "/Lists/" + properties.ListTitle + "/" + item["RepName"].toString() + "/" + item.ID + "_.000");
this.EnableEventFiring();
}
}
A présent mes créations d'éléments au travers des feuilles de données fonctionnent correctement, mais je n'ai pas testé cette action sur une montée en charge importante donc le code est "fournis tel quel" sans garantie aucune :p
Bon code à tous !
PS : 3 posts dans la même journée je viens de péter mon record 
Commentaires
Bonjour
Un article trés intéressant... Je suis également en train de mettre en place ce type d'édition de masse via une datasheet view et je voulais étudier la possibilité de passer par un worflow à chaque modification d'élément.
Auriez-vous une piste pour aller dans ce sens?
Merci de votre aide!
Bonjour,
Il existe différentes solutions pour mettre en place un workflow sur des éléments de SharePoint, vous trouverez ici un article très intéressant sur le sujet
http://stephaneey.developpez.com/tu...
Dans votre cas il faudra simplement que vous choisissiez de déclencher le workflow à la modification d'un élément. Cependant si votre "workflow" n'est pas très compliqué je vous conseille fortement de passer par un gestionnaire d'évènement. C'est plus simple à mettre en oeuvre. Voici un article sur le sujet :
http://stephaneey.developpez.com/tu...
En espérant que cela puisse vous aider.
Edgar