因为我在整个 web 应用中使用了大量的剑道网格,所以我开始引入一些给我带来很多麻烦的冗余代码。想象一下有这样的东西:
//MVC:
...
columns.Bound(c => c.Column1).Filterable(f => f.Extra(false)
.Operators(o => o.ForString(str => str.Clear().Contains("Contains")))
.Cell(c => .ShowOperators(false).Template("column1Filter")))
.Title("Column One");
...
//JS:
function column1Filter(container) {
container.element.kendoAutoComplete({
filter: "contains",
dataTextField: "Column1",
dataValueField: "Column1",
valuePrimitive: true,
dataSource: container.dataSource
});
}
然后,为每个单个网格中的每个单个列复制此方法。有什么方法可以让我只有一种方法可以创建剑道自动完成功能?例如:
function genericAutocompleteFilter(container) {
var columnsName = //...Meh!
container.element.kendoAutoComplete({
filter: "contains",
dataTextField: columnsName,
dataValueField: columnsName,
valuePrimitive: true,
dataSource: container.dataSource
});
}