little
|
 |
« : 03-12-2007 15:27 »  |
|
Помогите одолеть вражий компонент GridLookupEdit от DevExpress (v. 7.2). Проблема следующая:
Нужно сделать комбу с автоподгрузкой данных по вводимому тексту. Т.е. юзер набрает "а" - в комбу грузятся из БД TOP-20 клиентов, начинающихся на "а". ВВодит следующий символ - идет более точная вычитка.
Проблема не в вычитке а именно в работе с самим контролом. При наборе текста в текст-бокc области контрола открывается поп-ап окно, фильтрующее имеющийся датасорс по введенному тексту. При этом события KeyPress не происходят - комба сама их перехватывает и обрабатывает. Так что я даже не могу узнать, какой именно символ был введен. Пробовал вешаться на EditValueChanging и EditValueChanged и там подменять датасорс при необходимости, но при этом не удается спозиционироваться на строках нового источника данных и схлопывается поп-ап окно. Команда ShowPopup() ни к чему не приводит. Если нажать "Esc" происходит как бы отмена ввода и тогда после открытия поп-апа (ручками) отображаются уже новые данные. Программная же эмуляция этих действий посредством CancelEdit() и ShowPopup() опять же ни к чему не приводит.
Подскажите, как побороть эту проблему, когда именно подменять датасорс и что делать, чтобы это отображалось динамично. Грузить всю таблицу клиентов нельзя - их сотни тысяч.
|