Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Открыть новую тему     Написать ответ в эту тему

D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую. Выше я приводил пример поискового виджета — https://disk.yandex.ru/d/wBwrmI2t64XJ1Q — в котором по умолчанию отсутствует поиск по регулярным выражениям. На сайте поддержки виджета нашел совет, как можно эту возможность добавить — https://supportcenter.devexpress.com/ticket/details/t833985/datagrid-row-filter-regular-expression
 
Но сам так и не справился. Как я понял, там надо предложенный фрагмент вписать в какое-то место файла «dx.all.js» из архива. Просьба подсказать.

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 17:36 07-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
вписать в какое-то место файла «dx.all.js» из архива

а кликнуть на ссылку внутри? она приведет на сайт с API, где указан пример
https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/columns/#calculateFilterExpression

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 22:50 07-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Добавил вот так, но изменений не заметил:

 
FilterExpression — это в результате регулярные выражения должны активироваться? Или дополнительно надо вставить тот фрагмент кода, приведенный в службе поддержки?

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 23:53 07-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Или дополнительно надо вставить тот фрагмент кода, приведенный в службе поддержки?

у вас могли возникнуть другие мысли?? ессно пример в API для другого, но вы спросили куда вставить - вот и указал.

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 00:29 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Точно, спасибо. Но вот тоже результата не дало — нет поиска по регуляркам
 

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 02:21 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
нет поиска по регуляркам

1) где вводите регулярку
2) что вводите

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 02:38 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
1) Ввожу во всех полях ввода
2) Самое простое, типа: «3.a», или «3.*a»

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 03:45 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
1) Ввожу во всех полях ввода
2) Самое простое, типа: «3.a», или «3.*a»

ну сравните код.. не делается это методом тыка, нужно изучать и понимать что код делает и как его изменить под свои нужды.
пример написан под поле данных dataItem.errorCode, которого у вас нет.
если не понимаете какого вида обрабатываете данные, сделайте
console.log(dataItem) в правильном месте и посмотрите что получаете, тогда поймете к каким данным будете применять регулярку в .match
 
и этот метод применяется к конктретному столбцу.
в вашем случае это столбец aaa.
 
я посмотрел, dataItem действительно объект со строкой. если хочется применять ко всем столбцам, то можно вынести общую функцию отдельно, и применить ее к каждому столбцу.
 
что то типа такого

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 04:57 08-07-2021 | Исправлено: Mavrikii, 05:28 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Понял, спасибо) Надо было в коде указать название заголовка колонки «aaa». Только не пойму, с чем связано, что поиск не обновляется как обычно — то есть, по мере уточнения запроса не происходит обновление результатов?

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 05:13 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Надо было в коде указать название заголовка колонки «aaa».

смотрите код выше. дальше уже копайте как заставить именно регулярку работать.

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 05:18 08-07-2021 | Исправлено: Mavrikii, 05:24 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Имелось в виду, что регулярка работает, но стоит один раз ввести то, что есть в колонке — например, «3.a» — и потом любым образом обновить запрос, вписав туда же что-то другое, то результаты в окне никак не меняются. То есть, после этого надо заново обновить страницу и делать новый запрос

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 05:29 08-07-2021 | Исправлено: D1D1D1D, 05:31 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
и потом любым образом обновить запрос, вписав туда же что-то другое, то результаты в окне никак не меняются.

либо ошибка в коде.
либо что то другое выводит те же результаты.
регулярное выражение для 3 и 3. выведет одно и то же, если в записи больше 1 символа.
3.a в первом столбце должна вывести только результаты для 33a
мой код выше нормально все обновляет при изменении.
 
Подробнее...

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 05:31 08-07-2021 | Исправлено: Mavrikii, 05:35 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Большое спасибо! Тогда не заметил, что Вы обновили сообщение. Да, намного лучше работает, но все же не хватает функционала, чтобы к примеру, задав поиск «г.а», потом следом можно было добавить к этому единицу — «г.а1» — и чтобы результаты тут же обновились на «Не найдено». Нужно это на случай, если будет найдено длинное слово, а потом пользователь захочет его сократить, расширив результаты. Например, будет искать «ра..вета», а потом удалит букву «а» в конце и получит результаты — «рассвет», а не только «рассветать»

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 05:51 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
вы сами захотели указать регулярку, как ее указываете, так и ищет.

Цитата:
а потом удалит букву «а» в конце и получит результаты — «рассвет», а не только «рассветать»

регулярке все равно, она ищет часть слова.
если вы хотите закончить поиск, то нужно ставить # в конце - окончание строки
если же хотите так, как написали, нужно переделывать под свои нужды.
например оставить только точку и звездочку, точка на один символ, звездочка на любое количество.
и по ним формировать соответствующее регулярное выражение, а не разрешать вводить его напрямую (тем более без try catch конфигурации, так как пользователь может ввести регулярку с ошибкой)

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 05:55 08-07-2021 | Исправлено: Mavrikii, 05:58 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Просьба взглянуть на этот вариант — https://disk.yandex.ru/d/wBwrmI2t64XJ1Q
 
К примеру, там если ввести в соответствующей колонке поиск «рассвета» — найдётся слово «рассветать». А потом если удалить последнюю букву «а» — то слово «рассвет» не найдётся. Возможно ли обновление результатов?
 
Добавлено:
То же самое происходит во время набора символов в поисковой строке - стоит ошибиться на какой-то символ - и результаты не обновляются

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 06:10 08-07-2021 | Исправлено: D1D1D1D, 06:11 08-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
А потом если удалить последнюю букву «а» — то слово «рассвет» не найдётся. Возможно ли обновление результатов?

там добавляется какой то вызов
Цитата:
onkeyup="fix(this)"
, функции нет.
но связано не с этим, оно просто не обновляет при вводе новых символов после первой фильтрации.
видимо запоминает возвращаемый массив для фильтрации, потому что он возвращается нормально.
 
https://supportcenter.devexpress.com/ticket/details/t438937/dxdatagrid-does-not-refresh-filtered-data-properly-if-the-first-parameter-of-the-filter

Цитата:
the dxDataGrid.cacheEnabled option should be set to false.

тогда нормально работает
 
что то мы тему загадили, это вопросы по конкретному скрипту, а не js

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 06:30 08-07-2021 | Исправлено: Mavrikii, 06:35 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо!

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 06:43 08-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересно, почему нельзя задать границу слова (\b) в этом поиске? Это рег. выражения с каким-то урезанным функционалом?

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 16:19 09-07-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это рег. выражения с каким-то урезанным функционалом?

\b соответствует [^a-z] без регистра, работать с другим алфавитом не будет.

Всего записей: 15099 | Зарегистр. 20-09-2014 | Отправлено: 16:38 09-07-2021
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обнаружил, что открывающая квадратная скобка [ работает там как граница начала слова в таком формате: «[[Яя]п» (будут найдены все слова, начинающиеся на «Яп/яп»).
 
Добавлено:
Mavrikii
 
Есть ли возможность отключить чувствительность к регистру при поиске? А то стоит написать слово со строчной буквы, которое в базе начинается на прописную - и слово не находится.

Всего записей: 1367 | Зарегистр. 05-04-2010 | Отправлено: 23:12 09-07-2021 | Исправлено: D1D1D1D, 23:48 09-07-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru