我有移动列表视图,并尝试使用 mvc 控制器按服务器端过滤数据源,但过滤器返回 null。
dataSource = new kendo.data.DataSource({
pageSize: 30,
page: 1,
serverPaging: true,
serverFiltering: true,
transport: {
read: {
url: '/Mobile/GetExecuteAssignment',
dataType: "json",
type: 'GET',
cache: false
}
},
parameterMap: function (options) {
var parameters = {
filter: options.filter.filters[0].value,
take: options.take,
skip: options.skip,
pageSize: options.pageSize,
page: options.page
};
return parameters;
},
我的控制器:
public object GetExecuteAssignment(int page, int pageSize, string filter) {
}
问题出在哪里?任何想法!
parameterMap
是传输对象的属性。
如果你更新你的 JavaScript:
<script type="text/javascript">
function mobileListViewFiltering() {
var dataSource = new kendo.data.DataSource({
pageSize: 30,
page: 1,
serverPaging: true,
serverFiltering: true,
transport: {
read: {
url: '/Home/GetExecuteAssignment',
dataType: "json",
type: 'GET',
cache: false
},
parameterMap: function (options) {
console.log(options);
var parameters = {
filter: options.filter ? options.filter.filters[0].value : '',
take: options.take,
skip: options.skip,
pageSize: options.pageSize,
page: options.page
};
return parameters;
}
}
}
});
$("#filterable-listview").kendoMobileListView({
dataSource: dataSource,
template: $("#mobile-listview-filtering-template").text(),
filterable: {
field: "name",
operator: "startswith"
},
endlessScroll: true
});
}
</script>
然后,您可以在移动列表视图中运行键入,并在浏览器中查看调试工具是否传递了正确的参数(在这种情况下,我看到filter=Jane&take=30&skip=0&pageSize=30&page=1&_=1426533857671
)
此示例直接改编自筛选演示。