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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 117 118 119 120 121 122 123 124 125

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

D1D1D1D

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

Всего записей: 1506 | Зарегистр. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всего записей: 1506 | Зарегистр. 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 действительно объект со строкой. если хочется применять ко всем столбцам, то можно вынести общую функцию отдельно, и применить ее к каждому столбцу.
 
что то типа такого

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всего записей: 1506 | Зарегистр. 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

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

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

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

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

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

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

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

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

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

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

Всего записей: 1506 | Зарегистр. 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 117 118 119 120 121 122 123 124 125

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru