Простой фильтр с подстановочными знаками в Dev Express ASPxGridView? - PullRequest
0 голосов
/ 11 февраля 2020

В настоящее время я работаю над ASP. NET MVC веб-сайтом, на котором у меня есть элемент управления Dev Express ASPxGridView. В настоящее время для элемента управления AutoFilterCondition установлено значение «AutoFilterCondition.Contains», поэтому для каждого столбца я могу ввести ключевое слово для поиска, и он покажет все записи, в которых столбец содержит это ключевое слово.

Теперь мне нужно изменить это потому что простой поиск содержит больше не достаточно для одного из столбцов в сетке. Новое требование заключается в том, что пользователь может использовать подстановочный знак (звездочка), чтобы стало возможным вводить ключевые слова, например «Пример *». Также должно быть возможно несколько подстановочных знаков для каждого ключевого слова поиска.

Я обнаружил, что могу использовать событие ProcessColumnAutoFilter, чтобы изменить критерии для определенного столбца, но я просто не могу понять, как реализовать подстановочный знак. особенность с этим событием. Вот пример того, что я пробовал до сих пор:

 settings.ProcessColumnAutoFilter = (sender, e) =>
 {
     if (e.Column.FieldName != "Path")
     {
         return;
     }

     if (e.Kind == GridViewAutoFilterEventKind.CreateCriteria)
     {
         e.Criteria = DevExpress.Data.Filtering.CriteriaOperator.Parse($"[Path] like '%{e.Value}%'", e.Value);
     }
 };

С этим кодом происходит несколько странных вещей. Например, каждое ключевое слово, которое я ввожу, удаляется из текстового поля поиска для столбца «Путь», как только я нажимаю клавишу ввода. Почему? Оператор like также использует «%» в качестве подстановочного знака вместо звездочки, так что это работает не совсем так, как я хочу. Как использовать звездочку в качестве символа подстановки, а также убедиться, что ключевое слово не исчезает при его поиске?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...