Фильтр Kendo Grid не работает с колонкой внешнего ключа Модель - PullRequest
0 голосов
/ 15 мая 2018

Мои столбцы сетки:

@(Html.Kendo().Grid<Kendo_UI_Bootstrap_Integration.Models.DTO.GridDto>()
                .Name("GridName")
                .Filterable(f => f.Mode(GridFilterMode.Menu).Extra(false))
                .EnableCustomBinding(true)
                .Columns(
                columns =>
                {
                    columns.ForeignKey(c => c.HouseId, Model.Homes, "HouseGuid", "HouseName")
                    .EditorTemplateName("HouseDropDown")
                    .Title("House Name")
                    .Filterable(f => f.UI("$.proxy(GridFilter, {field: 'Id'})").Operators(o => o.ForString(e => e.Clear().IsEqualTo("Is equal to").IsNotEqualTo("Is not equal to"))));

                    columns.ForeignKey(c => c.NameId, Model.Names, "NameGuid", "Name")
                    .EditorTemplateName("NameDropDown")
                    .Title("Name")
                    .Filterable(f => f.UI("$.proxy(GridFilter, {field: NameId})").Operators(o => o.ForString(e => e.Clear().IsEqualTo("Is equal to").IsNotEqualTo("Is not equal to"))));

Фильтр сетки:

function GridFilter(element) {
var grid = "GridName";
var fieldName = this.field;
var gridDataItems = $("#" + grid).data("kendoGrid").dataSource.data();
var listDataItems = [];
for (var i = 0; i < gridDataItems.length; i++) {
    if (gridDataItems[i][fieldName] !== null && $.inArray(gridDataItems[i][fieldName], listDataItems) < 0) {
        listDataItems.push(gridDataItems[i][fieldName]);
    }
}
listDataItems.sort();
$(element).prop("id", fieldName + "DropDown");

element.kendoDropDownList({
    dataSource: {
        data: listDataItems
    }
})

}

Я передаю свою ViewModel вверху представления, Модель состоит из списка Домов и списка Имен из базы данных.

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

Как я могу сделать так, чтобы фильтр просто смотрел на содержимое сетки?

...