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

start [/forum/topic.php?fid=58&mobile=1&tid=2040017]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 488ms |

| 0 / 0 |
