[英]Kendo grid filtering on integer column when typing
I have a grid with multiple columns. 我有一个多列网格。 say Id(integer)
, Name(string)
etc. Change event is working fine for name column.But for ID column it is not working. 例如说Id(integer)
, Name(string)
等。Change事件对于name列正常工作。但是对于ID列则无效。
I want this functionality to be in server side(Razor). 我希望此功能在服务器端(剃刀)中。
I am new to Kendo UI and any help on how to do this would be much appreciated. 我是Kendo UI的新手,因此非常感谢您提供有关此操作的帮助。
I am attaching my code below: 我在下面附上我的代码:
@(Html.Kendo().Grid(Model).Name("ViewDataGrid")
.Columns(columns =>
{
columns.Bound(c => c.Id).Title(" ID").Width(150);
columns.Bound(c => c.Name).Title(" Name").Width(150);
})
.HtmlAttributes(new { style = "height: auto; width: 2200px" })
.Filterable(i => i.Mode(GridFilterMode.Menu | GridFilterMode.Row))
.Sortable(s => s.AllowUnsort(false).SortMode(GridSortMode.MultipleColumn))
.Selectable(selecting => selecting.Enabled(true))
.Pageable(r => r.PreviousNext(true).PageSizes(new int[] { 10, 20, 30, 40, 50, 100 }))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(false)
.Events(e => e.Change("call"))
))
function call(e) {
if (e.sender.filter.arguments[0].filters != null) {
if (e.sender.filter.arguments[0].filters[0].value == "") {
$('#ViewDataGrid').data('kendoGrid').dataSource.filter({});
}
else {
var filterlength = e.sender.filter.arguments[0].filters.length;
$filter = new Array();
if (e.sender.filter.arguments[0].filters[0].field == "Id")
$filter.push({ field: e.sender.filter.arguments[0].filters[0].field, operator: "eq", value: e.sender.filter.arguments[0].filters[0].value });
else
$filter.push({ field: e.sender.filter.arguments[0].filters[0].field, operator: "contains", value: e.sender.filter.arguments[0].filters[0].value });
$("#ViewDataGrid").data("kendoGrid").dataSource.filter($filter);
}
}
}
public int Id { get; set; }
public string Name { get; set; }
public ActionResult Index()
{
List<GridData> dataList = new List<GridData>();
GridData data1 = new GridData();
data1.Id = 9191919;
data1.Name = "XYZ";
dataList.Add(data1);
return View(dataList);
}
尝试使用“行”选择类型:
.Selectable(selecting => selecting.Enabled(true).Type(GridSelectionType.Row))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.