Kendo ui 自定义列过滤器kendo ui网格
我在labourmeansstatusenum列上实现了一个自定义ui过滤器。但是函数没有被调用,因此过滤器没有自定义值。 知道我做错了什么吗Kendo ui 自定义列过滤器kendo ui网格,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我在labourmeansstatusenum列上实现了一个自定义ui过滤器。但是函数没有被调用,因此过滤器没有自定义值。 知道我做错了什么吗 @(Html.Kendo().Grid<Presentation.Mvc.Models.LabourMeans.LabourMeansViewModel>() .Name("grid") .Columns(columns => { /**/ columns.Bound(s => s.LabourMe
@(Html.Kendo().Grid<Presentation.Mvc.Models.LabourMeans.LabourMeansViewModel>()
.Name("grid")
.Columns(columns =>
{
/**/
columns.Bound(s => s.LabourMeansStatusEnum)
.ClientTemplate("# if (LabourMeansStatusEnum == 0){#" +
"<div id='outofservice'><span class='label label-info arrowed-right arrowed-in'>" + @Label.OutOfService() + "</span></div>" +
"#}else if (LabourMeansStatusEnum == 1){#" +
"<div id='intreatment'><span class='label label-info arrowed-right arrowed-in '>" + @Label.InTreatment() + "</span></div>" +
"#}else if (LabourMeansStatusEnum == 2){#" +
"<div id='inservice'><span class='label label-info arrowed-right arrowed-in '>" + @Label.InService() + "</span></div>" +
"#}#"
)
.Title("Status")
.Filterable(filterable => filterable.UI("labourMeansStatusFilter"));
.Filterable(filterable => filterable
.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.IsEqualTo(@Label.IsEqualTo())
.IsNotEqualTo(@Label.IsNotEqualTo())
))
)
.Resizable(resize => resize.Columns(true))
.Pageable()
.Scrollable()
.Sortable()
.Reorderable(reorder => reorder.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.Sort(sort => sort.Add("Id").Ascending())
.PageSize(10)
.Model(model => model.Id(s => s.LabourMeans.LabourMeans.Id))
.Read(read => read.Action("LabourMeans_Read", "LabourMeans"))
)
)
据我所知,对于枚举类型,从来不会调用自定义筛选器方法。我不确定这是剑道中的一个bug,还是设计上的bug,但也许您可以通过公开包装器属性来解决它,以从/转换为枚举的字符串表示形式?您将过滤器UI函数放在哪里了?您需要提供更多信息/代码示例,以便本帖子能够作为答案。
function labourMeansStatusFilter(element) {
alert("test");
element.kendoDropDownList({
dataSource: [
{ Name: "Parent1", Id: 1 },
{ Name: "Parent2", Id: 2 }
],
dataTextField: "Name",
dataValueField: "Id"
});
alert("test5");
}