Использование MVC-обертки, я пытаюсь изменить фильтр по умолчанию с «равно» на «содержит». Я нашел несколько примеров, но ни один из них не делать то, что я хочу (или я неправильно использовать их ...)Kendo Ui Grid Filterable. Как я могу сменить оператор фильтра?
Итак, это мой код:
@(Html.Kendo().Grid<Portal2.Areas.Coord.Models.ViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.OperationKey).Hidden();
columns.Bound(c => c.Customer).Hidden();
columns.Bound(c => c.CarNumber).Filterable(ftb => ftb.UI("CarFilter"));
columns.Bound(c => c.DriverName).Filterable(ftb => ftb.UI("DriverFilter"));
columns.Bound(c => c.PhoneNumber).Filterable(ftb => ftb.UI("PhoneFilter"));
})
.Filterable(f => f.Extra(false))
.DataSource(dataSource => dataSource
.Ajax()
.Read(r => r
.Action("Read", "Operations2", new { startTime = (DateTime)ViewBag.startTime, endTime = (DateTime)ViewBag.endTime })
)
.PageSize(20)
.ServerOperation(false)
)
.HtmlAttributes(new { style = "height: 740px" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(10)
)
)
У меня есть JS функции:
function Filter(element, atr) {
var entityGrid = $(".k-grid").data("kendoGrid");
var data = entityGrid.dataSource.data();
var totalNumber = data.length;
var drivers = [];
for (var i = 0; i < totalNumber; i++) {
var currentDataItem = data[i][atr];
if ($.inArray(currentDataItem, drivers) == -1)
drivers.push(currentDataItem);
}
element.kendoAutoComplete({
dataSource: drivers
});
}
function CarFilter(element) {
Filter(element, "CarNumber")
}
function DriverFilter(element) {
Filter(element, "DriverName")
}
function PhoneFilter(element) {
Filter(element, "PhoneNumber")
Они помещают все значения в текстовое поле помощника в каждом фильтре. Я стараюсь это:
columns.Bound(c => c.CarNumber)
.Filterable(ftb => ftb.UI("CarFilter"))
.Filterable(ftb => ftb.Cell(c => c.Operator("contains")));
, но тот работает только для .Filterable(f => f.Mode(GridFilterMode.Row))
.Filterable(filterable => filterable
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.StartsWith("Starts with")
.IsEqualTo("Is equal to")
.IsNotEqualTo("Is not equal to")
)
)
)
Он не дает ожидаемого результата.
Предложения о том, как исправить это?