Как сопоставить имя поля с другим именем поля
У меня есть два поля, которые проходят по всему веб-сайту, и я хотел бы сопоставить их, чтобы при вводе пользователем значения в одно из полей оно совпадало с другим полем. Я использую Sitecore Rocks и пытаюсь использовать запрос для этого.
select @#h1#, @#Title#
from /sitecore/Content/Home//*[@#h1# !="@#Title#"];
update set @#h1# = @#Title# from /sitecore/Content/Home//*[@#Title# = "<id>"];
Что мне здесь не хватает?
2 ответа
В этой статье говорится о подключении к item:saving
Событие, которое позволяет сравнивать значения полей элемента до и после изменений:
Используя это, вы можете определить, какое поле было изменено, а затем изменить другое для соответствия.
Мне пришлось сделать что-то похожее на это, когда было добавлено новое поле, и мы хотели установить начальное значение равным существующему полю. Это может быть ошибка в Sitecore Rocks, но я обнаружил, что она будет обновлять поле только тогда, когда статическое значение является частью запроса.
Когда я побежал @#h1# = @#Title#
анализатор запросов будет возвращать правильное количество обновленных элементов, но никакие значения не были обновлены. Тем не мение, @#h1# = '<id>'
работал отлично. Попробовав несколько вещей, я обнаружил, что сделал то, что хотел.
update set @#h1# = '' + @#Title# from /sitecore/Content/Home//*[@#Title# = "<id>"];
Надеюсь, это поможет.