Je crée un composant WebPart pour SharePoint. J'ai une partie de l'éditeur personnalisé qui remplace les méthodes SyncChanges() et ApplyChanges() (entre autres). Le problème est que lorsque je clique sur OK en mode édition, la page passe en mode navigation, mais les données (propriétés) qui ont été modifiées dans EditorPart et enregistrées dans la méthode ApplyChanges() ne sont pas mises à jour. Je dois à nouveau «entrer dans la page» (recharger sans POSTing les données à nouveau) pour voir la modification qui a été faite. Je l'ai débogué et j'ai compris ce qu'il faisait - après avoir cliqué sur OK en mode d'édition, WebPart.CreateChildControls() est appelé en premier, et EditorPart.ApplyChanges() en second. Les données ont donc été mises à jour mais les données non mises à jour étaient affichées.Ordre d'appel des méthodes CreateChildControls() et ApplyChanges() dans un composant WebPart SharePoint
J'ai figuré autre chose dans ce comportement: Ajout d'un contrôle spécifique à mon WebPart dans CreateChildControls() provoque l'ordre incorrect d'appel WebPart.CreateChildControls() et EditorPart.ApplyChanges(). Dans mon cas cela provoque l'ajout des contrôles WebDataTree ou UltraWebTree (de Infragistics) mais cela peut aussi arriver avec le TextBox ASP.NET commun (comme décrit le même problème en détail ici: ASP.net forum thread). Donc, si j'ajoute l'arborescence, CreateChildControls() est appelée en premier et ApplyChanges en second, donc ce n'est pas réel. Je dois actualiser pour voir les changements que j'ai faits dans la partie éditeur.
Si je commente en ajoutant l'arbre à la collection de contrôles, ApplyChanges est appelé en premier et tout est ok (sauf que je dois cet arbre :)) ...
Est-ce que quelqu'un sait ce qui peut causer ce comportement bizarre?
Pas de réponse, juste une reconnaissance du fait que vous n'êtes pas le seul que la douleur va bien. Après des heures d'efforts pour lutter contre ce problème spécifique, j'ai abandonné et rendu les contrôles à l'intérieur de la partie web elle-même en mode édition. – Tom
Ran dans ce aussi bien. A dû déplacer le code à OnPreRender. –