剑道列表视图可筛选服务器端筛选器字段返回 null



我有移动列表视图,并尝试使用 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

此示例直接改编自筛选演示。

最新更新