Имеется возможность привязать AjaxAutocomplete к AjaxLookup. Т.е. при выборе значения в контроле с поддержкой AjaxAutocomplete
будет автоматически проставляться значение лукапа, если значение заданного свойства будет найдено в мастеровых объектах, иначе лукапу проставится пустое значение.
Внимание: Не стоит путать это с поддержкой автодополнения в AjaxLookup
.
Внимание: Если требуется использовать вычислимое свойство, то обязательно должно быть указано представление!
Возможная ситуация
Например, на форме редактирования Организация
отображаются лукап для мастера Адрес
и собственное свойство АдресСтрокой
. Вам нужно добавить автодополнение для АдресСтрокой
, значения которые будут браться из Адрес.АдресПолностью
. При совпадении введенного значения и значения мастера в свойстве Адрес.АдресПолностью
проставится значение лукапа(ссылка на объект). Если вы ввели значение, которого нет в мастеровых значениях, то АдресСтрокой
просто сохранится, а ссылка на мастера не будет проставлена.
Пример
AjaxAutocomplete.AddLinkedAutocomplete(ctrlАдрес, ctrlАдресСтрокой, typeof(Адрес), "АдресПолностью");
PreApplyToControls
формы редактирования.Также, имеется настройка связи между лукапом и полем для ввода. Например, если нужно изменять значение в поле для ввода, если меняется значение в лукапе.
Пример
bool changeValueWithLookup = true;
AjaxAutocomplete.AddLinkedAutocomplete(ctrlАдрес, ctrlАдресСтрокой, typeof(Адрес), "АдресПолностью", changeValueWithLookup);
Пример явного задания ограничения для автодополнения
Внимание: Если задано ограничение ajax-лукапу и он связан с текстовым полем, при этом явно не задано ограничение на автодополнение, то ограничение на автодополнение возьмется из лукапа.
Function licenceFunc = FunctionBuilder.BuildSQL("(select count(*) from ЛицензияОрганизации where STORMMainObjectKey = Организация) > 0");
AjaxAutocomplete.AddLinkedAutocomplete(ctrlСоздательГеопункта, ctrlСоздательГеопунктаСтрокой, typeof(Организация), "ОрганизацияПроп", true, true, licenceFunc);