У меня есть сетка, которая будет загружать данные в виде фильтруемого поля, поэтому мне нужно создать собственный фильтр для этого столбца с фильтруемым полем со списком.Kendo Grid Пользовательский фильтр comboBox
Я создаю поле со списком и назначаю его в пользовательский интерфейс фильтра столбцов. Моя проблема в том, когда combobox считывает данные с контроллера, он не отправляет текст фильтра в контроллер.
<script type="text/javascript">
function outletFilter(element) {
debugger;
element.kendoComboBox({
dataTextField: "OutletNameE",
dataValueField: "OutletID",
autoBind: false,
minLength: 1,
dataSource: {
serverFiltering: true,
transport: {
read: "@Url.Action("GetOutletsCombo")"
}
},
optionLabel: "--Select Value--"
});
}
</script>
@(Html.Kendo().Grid<Spine.ERP.ViewModel.AccountReceivableOutletViewModel>()
.Name("ARDetails_OutletGrid")
.Columns(columns =>
{
columns.Bound(p => p.AccountReceivableID).Hidden();
columns.Bound(p => p.AccountReceivableOutletID);
columns.Bound("Outlet.OutletName")
.EditorTemplateName("OutletForeignKeyEditor")
.ClientTemplate("<a>#=OutletID ##=OutletID? '-' : ' ' ##=OutletID ?
Outlet.OutletName : ' ' #</a>")
.Filterable(filter => filter.UI("outletFilter"));
})
А вот моя функция контроллера
public ActionResult GetOutletsCombo(string text)
{
if (text == null)
text = "";
var result = new List<OutletViewModel>();
var Outlets = outletRepository.FilterOnID("Outlet", new string[] { "OutletID", "OutletNameE" }, text).ToList();
result = (from outlet in Outlets
select new OutletViewModel
{
OutletID = outlet.OutletID,
OutletNameE = outlet.OutletNameE,
OutletNameA = outlet.OutletNameA
}).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
Спасибо за ваш ответ. Я хочу изменить фильтр фильтра по умолчанию внутри столбца из текстового поля в фильтруемое поле со списком, чтобы оно было похоже на поле данных столбцов, а не на панели инструментов. –
@WaelJoulani в этом случае вы проверили это http://demos.kendoui.com/web/grid/filter-menu-customization.html? Позвольте мне знать, если это помогает. – Mahib
Да, я проверяю его, и я добавляю поле со списком в столбец фильтра, но моя проблема заключается в том, что я пытаюсь фильтровать внутри этого поля со списком искомый текст, не отправленный на контроллер –