Parsing 解析输入值上的剑道过滤器
我的例子是: 这里我有一个包含“status”的数据对象,它是一个整数!(它是1、2或3) 在我的网格中,屏蔽了新的、待定的和已关闭的 为了显示字符串(新的、挂起的和关闭的),我在shema->中创建了一个parse函数,用于过滤已解析的值,不能在列定义中使用模板,而必须在数据源中解析它Parsing 解析输入值上的剑道过滤器,parsing,filter,grid,kendo-grid,kendo-template,Parsing,Filter,Grid,Kendo Grid,Kendo Template,我的例子是: 这里我有一个包含“status”的数据对象,它是一个整数!(它是1、2或3) 在我的网格中,屏蔽了新的、待定的和已关闭的 为了显示字符串(新的、挂起的和关闭的),我在shema->中创建了一个parse函数,用于过滤已解析的值,不能在列定义中使用模板,而必须在数据源中解析它 Status: { type: "int", parse: function(status) { console.log(status,"stat");
Status: { type: "int",
parse: function(status) {
console.log(status,"stat");
switch(status){
case 1: return"New"; break;
case 2: return"Pending"; break;
case 3: return"Solved"; break;
case 5: return"Closed"; break;
}
}
},
当这个解析器被调用时,会出现一个“console.log”,我注意到在它之后!我筛选“新”日志内容如下:
n stat
undefined "stat"
…当我第一次运行页面时,日志显示(如预期的那样):
过滤器不工作(例如,尝试过滤“新建”)
有什么帮助吗?我不确定这是否正确,但请尝试以下示例:
.kendoDropDownList({
dataSource: new kendo.data.DataSource({
data: [
{ title: "Software Engineer" },
{ title: "Quality Assurance Engineer" },
{ title: "Team Lead" }
]
}),
dataTextField: "title",
dataValueField: "title"
});
需要使用“schema.parse选项”
dataSource: {
data: data,
schema: {
parse: function(response) {
var products = [];
for (var i = 0; i < response.length; i++) {
switch(response[i].Status){
case 1: response[i].Status = "New"; break;
case 2: response[i].Status = "Pending"; break;
case 3: response[i].Status = "Solved"; break;
case 5: response[i].Status = "Closed"; break;
}
console.log(response[i]);
products.push(response[i]);
}
return products;
},
model: {
fields: {
OrderID: { type: "number" },
Status: { type: "string"},
ShipCountry: { type: "string" }
}
}
}
},
数据源:{
数据:数据,
模式:{
解析:函数(响应){
var乘积=[];
对于(变量i=0;i
以下是剑道的回答:谢谢你,它确实有效,但它是一种黑客行为。我找到了答案,几分钟后就贴出来了。再次感谢你
dataSource: {
data: data,
schema: {
parse: function(response) {
var products = [];
for (var i = 0; i < response.length; i++) {
switch(response[i].Status){
case 1: response[i].Status = "New"; break;
case 2: response[i].Status = "Pending"; break;
case 3: response[i].Status = "Solved"; break;
case 5: response[i].Status = "Closed"; break;
}
console.log(response[i]);
products.push(response[i]);
}
return products;
},
model: {
fields: {
OrderID: { type: "number" },
Status: { type: "string"},
ShipCountry: { type: "string" }
}
}
}
},