Применение правил в сеточном фильтре Telerik MVC - PullRequest
1 голос
/ 31 января 2012

Я использую Telerik MVC Grid, и мне нужно применить правила фильтрации ниже, но, похоже, они применяются только к первым двум столбцам и игнорируют все остальные столбцы.

Здесь код JS: (предположим, что grid равен $ ("# grid"). Data ("tgrid"))

function extTelerikGridFilter(grid, value) {
    if (!$.isArray(grid.columns)) throw "Error : First Parameter accept only array.";

    var colLength = grid.columns.length - 1;
    var filterText = "";

    var tempArr = new Array();
    for (var i = 0; i < grid.columns.length; i++) {
        filterText = filterText + "substringof({0},'{1}')".replace("{0}", grid.columns[i].member).replace("{1}", value);
        if (colLength > 0) {
            filterText = filterText + "~or~";
            colLength = colLength - 1;
        }
    }
    console.log(filterText);
    grid.filter(filterText);
}

Результат console.log (filterText): substringof (Doc_No, 'Opriyandi') ~ или ~ substringof (тип 'Opriyandi') ~ или ~ substringof (Request_By, 'Opriyandi') ~ или ~ substringof (Request_Date, 'Opriyandi') ~ или ~ substringof (Департамент 'Opriyandi') ~ или ~ substringof (завод 'Opriyandi') ~ или ~ substringof (Описание, 'Opriyandi') ~ или ~ substringof (IT_Support, 'Opriyandi') ~ или ~ substringof (Status "Opriyandi «)

Посмотрите до и после применения фильтров во вложении.

Это какая-то ошибка или, возможно, я сделал что-то не так ... Спасибо.

* Использование Telerik MVC 2011.3.1229
* Пожалуйста, спросите меня, если вам нужна дополнительная информация относительно моей проблемы. :)

Приложение:
- BeforeApplyingFilter.png
- AfterApplyingFilter

1 Ответ

1 голос
/ 25 февраля 2012

У меня тоже была эта проблема.После некоторых экспериментов я обнаружил, что мы должны заключить в скобки каждое выражение, начиная с заголовка.

Итак, ваша строка фильтра будет выглядеть так:

(((((((((substringof(Doc_No,'Opriyandi'))~or~substringof(Type,'Opriyandi'))~or~substringof(Request_By,'Opriyandi'))~or~substringof(Request_Date,'Opriyandi'))~or~substringof(Department,'Opriyandi'))~or~substringof(Plant,'Opriyandi'))~or~substringof(Description,'Opriyandi'))~or~substringof(IT_Support,'Opriyandi'))~or~substringof(Status,'Opriyandi'))


Вы можете изменить свой код:

..
    for (var i = 0; i < grid.columns.length; i++) {
        -->    filterText = "(" + filterText + "substringof({0},'{1}')".replace("{0}", grid.columns[i].member).replace("{1}", value) + ")";    <--
        if (colLength > 0) {
            filterText = filterText + "~or~";
            colLength = colLength - 1;
        }
..

PS Я использую 2011.3.1306

PS2 Я написал статью о пользовательской фильтрации - см. ссылка .

...