Я создаю веб-часть для SharePoint. У меня есть специальный редактор, который заменяет методы SyncChanges () и ApplyChanges () (среди прочих).
Проблема в том, что когда я нажимаю OK в режиме редактирования, страница переключается в режим просмотра, но данные (свойства), которые были изменены в EditorPart и сохранены в методе ApplyChanges (), не обновляются. Я должен снова «войти на страницу» (перезагрузить без повторной публикации данных), чтобы увидеть внесенное изменение.
Я отладил его и выяснил, что он делает - после нажатия OK в режиме редактирования сначала вызывается WebPart.CreateChildControls (), а вторым EditorPart.ApplyChanges (). Таким образом, данные были обновлены, но отображались необновленные данные.
Я придумал что-то еще в этом поведении: добавление одного конкретного элемента управления в мою WebPart в CreateChildControls () вызывает неправильный порядок вызова WebPart.CreateChildControls () и EditorPart.ApplyChanges (). В моем случае это вызывает добавление элементов управления WebDataTree или UltraWebTree (из Infragistics), но это также может произойти с обычным текстовым полем ASP.NET (как подробно описана та же проблема здесь: ветка форума ASP.net).
Поэтому, если я добавляю дерево, сначала вызывается CreateChildControls (), а вторым - ApplyChanges, поэтому это не актуально. Я должен обновиться, чтобы увидеть изменения, внесенные в редакторе.
Если я прокомментирую добавление дерева в коллекцию элементов управления, сначала вызывается ApplyChanges, и все в порядке (за исключением того, что мне нужно это дерево :)) ...
Кто-нибудь знает, что может вызвать такое странное поведение?