mercredi 5 août 2009

Modifier une vue


Au cours de mes développements, j'ai été confronté à un étrange bug de SharePoint. Celui-ci me laisse encore dubitatif car je ne comprend vraiment pas ce qui provoque un tel comportement. Cela survient lorsque nous désirons modifier une vue via le code. Nous n'allons pas faire une grande explication mais juste expliquer le "bug" et comment le contourner. Imaginez que vous vouliez modifier la vue par défaut d'une liste pour y ajouter un champ, le code logique ressemblerait à ceci :

list.DefaultView.ViewFields.Add("Field");
list.DefaultView.Update();


Et cela serait tout à fait normal, cependant, cela ne fonctionne pas. Les opérations effectuées sont pourtant assez simples, nous ajoutons un champ aux ViewFields de la vue par défaut et ensuite, nous mettons à jour cette vue pour que celle-ci enregistre les changements apportés à celle-ci. Bien que ce code ne fonctionne pas, voici un bout de code qui, lui, fonctionne :

SPView view = list.DefaultView;
view.ViewFields.Add("Field");
view.Update();


La différence entre ce code et le précédent est que nous stockons la référence à la vue dans l'objet view. C'est ensuite sur cet objet que nous effectuons nos opérations et c'est cet objet que nous mettons à jour. Étrangement, cela fonctionne lorsque nous procédons de la sorte. Je n'ai jamais compris ce qui expliquait ce bug, mais maintenant vous voilà prévenu, lorsque vous voulez modifier une vue, il vous faut stocker une référence à celle-ci dans un objet et effectuer les modifications sur l'objet en question et non directement sur la vue.


Plus de tutoriel sur AreaProg et Développez

Aucun commentaire:

Enregistrer un commentaire