我正在使用 Kendo UI Combos 和淘汰赛。我正在尝试级联一个组合的结果以过滤另一个组合中的可用数据。
父组合中的 dataTextField 值不能按原样用于过滤子组合数据,因此我使用 parameterMap 选项来更改它。不幸的是,这似乎不起作用,绑定时我收到错误...
Message: SyntaxError: Expected ':';
Bindings value: kendoComboBox:
{scrollable:
{ virtual: true }
,filter: 'contains',
pageable: true,
dataTextField: 'Description',
dataValueField: 'Id',
autoBind: false,
placeholder: 'Select...' ,
cascadeFrom: 'NotifierServiceType',
dataSource:
{type : 'odata',
serverPaging: true,
serverFiltering: true,
serverSorting: true,
pageSize: 100,
filter : {field : 'LookUpType', operator : 'eq', value:15},
transport: {
read: { url: 'http://xxx/INS/services/LookUpService.svc/LookUpItems', dataType: 'json' } ,
parameterMap: function(data, type)
{ return { filter[filters][0][field]: 'ParentId';}
}
}
},
value:notifierSubDivisionId
}
删除 parameterMap 部分后,它会正确绑定,但不会像预期的那样过滤子组合。
任何帮助将不胜感激。
编辑:
这是使级联组合工作的修改后的代码:
parameterMap: function(data, action) {
var filterStem;
var filter;
filterStem = '$inlinecount=allpages&$top=100&$filter=(LookUpType+eq+15';
if (data.filter.filters[1] === undefined){
filter = ')'; }
else {
filter = '+and+ParentId+eq+' + data.filter.filters[1].value + ')' ;
}
return filterStem + filter; }}}
我确信有更好的方法来修改过滤器 - 有什么想法吗?
谢谢。