Конкретное поле в TreeNode, которое мы используем, должно быть уникальным среди его родных элементов.Чтобы убедиться, что он уникален, я пытаюсь изменить значения поля в TreeNode, когда пользователь изменяет и сохраняет его.Это заставляет событие save снова срабатывать, что вызывает мой обработчик событий, который снова запускает событие.Это нежелательный цикл.
Есть ли способ обновить treenode, не вызывая событие update?
Единственный способ, которым я могу думать, - это выполнить SQL-запрос непосредственно к базе данных,но я надеюсь, что есть лучший способ.
TreeNode.SubmitChanges (false);и TreeNode.Update ();оба запускают событие DocumentEvents.Update, так что это не решило проблему.
Я не вижу различий между DocumentEventArgs, когда событие вызывается из пользовательского интерфейса Kentico или когда оно запускается из моего C #code.
Вызов обработчика события:
DocumentEvents.Update.Before +=
uniquePageAliasModule.EnsureUniquePageAliasOnUpdate;
Реализация обработчика события:
treeNode.SetValue((Metadata.MetadataPageUrlPath), path);
treeNode.SubmitChanges(false);
Желаемый: сохранить изменения в TreeNode и не запускать DocumentEvents.Update.событие
Фактически: сохраняет изменения в TreeNode и запускает событие DocumentEvents.Update