|
Убрать список выбора у элемента формы, программно |
☑ |
0
yuch
23.10.12
✎
18:11
|
Управляемое приложение. У элемента формы в автоподборе указан алгоритм который предлагает список вариантов основанный на введенном тексте. Но когда вводимый текст не соответствует каким либо вариантам, у элемента зависает последний список выбора. Собственно можно его убрать программно?
|
|
1
GLazNik
23.10.12
✎
18:12
|
(0) СписокВыбора.Очистить() не?
|
|
2
yuch
23.10.12
✎
18:15
|
(1) Если про Элемент.СписокВыбора.Очистить() то не.
|
|
3
vmv
23.10.12
✎
18:16
|
ДанныеВыбора = Новый СписокЗначений;
в каком обработчике это сделать догадайся по терму ДанныеВыбора
именно они выпадают лезут когда идет набор текста в поле ввода
|
|
4
yuch
23.10.12
✎
18:19
|
(3) Именно. Я обрабатываю событие АвтоПодбор. И там для параметра ДанныеВыбора указываю какой список выводить пользователю.
Потом пользователь вводит еще несколько символов, в результате чего варианты для выбора отсутствуют, а список выбора все равно висит.
Надеюсь объяснил понятно.
|
|
5
vmv
23.10.12
✎
18:22
|
я так делаю, тьотки давольны
&НаКлиенте
Функция ПериодичностьПолучитьДанныеВыбора()
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Месяц"));
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Квартал"));
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Полугодие"));
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Год"));
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"), "Период");
Возврат ДанныеВыбора;
КонецФункции
// ----- Обработчики реквизитов формы "РфПериодичность", методы событий
&НаКлиенте
Процедура РфПериодичностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЯБухой Тогда
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");
ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");
Иначе
ДанныеВыбора = ПериодичностьПолучитьДанныеВыбора();
КонецЕсли;
КонецПроцедуры
|
|
6
yuch
23.10.12
✎
18:24
|
(5) Мне бы не показать, мне бы убрать.
|
|
7
vmv
23.10.12
✎
18:27
|
в (5) это это предложение
ОкончаниеВводаТекста(<Текст>, <ДанныеВыбора>, <СтандартнаяОбработка>)
тебе ни о чем не намекает?
это и есть место где нужно снова переопределить данныевыбора, прохавав введенный текст, ну там проверить на наличие такого текста в текущих значениях элементов списка, переформировать его и так далее
|
|
8
yuch
23.10.12
✎
18:38
|
(7) ОкончаниеВводаТекста наступает когда пользователь нажал enter и закончил редактирование. В моем же случае пользователь продолжает вводить текст, вот только список выбора уже не нужен.
Мне его убрать нужно.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший