|
|
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Задача: хочется чтобы у текстового поля поиска в DevEx-овском риббоне выпадал список возможных вариантов. Но искать надо в огромном количестве элементов, поэтому заранее заполнять комбобокс не имеет смысла, надо заполнять на лету. Что-то вроде Autocomplete в jqueryui. Т.е. пользователь набрал пару знаков текста, обработчик реакции на onPropertiesEditValueChanged загрузил 10 подходящих значений, начинающихся на эту строку и отобразил их в комбобоксе (или какие ещё есть варианты?) под текстовым полем. Есть ли у кого ссылки или примеры реализации подобного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 15:02 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Dimonka, Есть. Я делал, получилось не без глюков - TcxTextEdit с AutoComplete как у Яндекса (Исходник) Его можно встроить в Ribbon. Добавь в событие OnShowDropDown свой обработчик. В последствии я переделал контрол так, что он получал список автокомлита из Сторед Процедуры, основываясь на текущем значении TextEdit Он был сделан так, что событие OnDelayedChange вызывается не сразу в OnChange, а ждёт 500мс с момента последнего изменения. Что бы не вызывать СП при каждом изменении. Короче, есть - но требует доработок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 22:57 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 23:03 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Valery_B, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2018, 23:04 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
У ТС было условие: Dimonka... Но искать надо в огромном количестве элементов, ... надо заполнять на лету... В приведенном примере от Valery_B с помощью СП дергается поле Description из таблицы DepartmentPositions и возвращаются на клиента 5 первых записей. Используется like. Если действительно "огромное количество элементов", то приведенный запрос обработает (путем прямого перебора) абсолютно все элементы (записи) и только затем вернет первые 5. Если даже поле Description будет индексировано, то конструкция like (в приведенном варианте) индексы не использует (Если ошибаюсь - поправьте плз.) Соответственно тормоза с показом списка обеспечены. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 11:22 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Valery_BЕсть. Я делал, получилось не без глюков - TcxTextEdit с AutoComplete как у Яндекса (Исходник) Короче, есть - но требует доработок. Спасибо! Почти то, что надо. Какие глюки наблюдались? vitku Если действительно "огромное количество элементов", то приведенный запрос обработает (путем прямого перебора) абсолютно все элементы (записи) и только затем вернет первые 5. SQL настроить это дело второе. Меня больше волнует сейчас поведение контрола. Ну и с "огромным количеством" я конечно немного преувеличил - "неизвестное количество" будет точнее, что не исключает конечно "огромное количество". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 12:27 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
vitku, Да, ты правильно заметил. Поиск по содержимому затратный. Но это не имеет никакого отношения к компоненту. Скорее всего, поиск будет тех пор, пока не наберётся ТОП 5 записей. А вообще, это зависит от БД. Как ты там оптимизируешь сторед процедуру - это уже твоё дело. Но так или иначе, ты сделаешь всё тоже самое. Правильное решение: Делать и использовать сервер приложений, кэшируя запросы на нём. Но это выходит за рамки темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 12:28 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
DimonkaКакие глюки наблюдались? Один точно есть : если открыт ДропДаун и ты переносишь окно, то ДД остаётся висеть в своём месте. Его надо закрывать при потере фокуса. Вообще, у меня TEdit очень сложный контрол. AutoComplete в нём это только часть функционала. Но всё руки не доходят довести его до ума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 12:34 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Зачем использовать TcxTextEdit ? Не проще ли TcxPopupEdit ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 13:07 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
Valery_Bvitku, ...Скорее всего, поиск будет тех пор, пока не наберётся ТОП 5 записей. Не... В приведенном тобой примере запрос выберет абсолютно все записи, удовлетворяющие критериям отбора where like..., даже независимо от того, есть ли правильный индекс на поле Description. Like индексы не использует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 13:23 |
|
||
|
DevExpress Ribbon сделать "живой поиск"
|
|||
|---|---|---|---|
|
#18+
vitku, Поиск будет до тех пор пока не наберётся 5 строк. Проверено на FB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2018, 13:42 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39745910&tid=2040017]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 479ms |

| 0 / 0 |
