服务器端分页不工作的igGrid

时间:2016-09-22 20:55:47

标签: odata infragistics ignite-ui iggrid

我正在使用服务器端分页构建一个igGrid。网格连接到由Visual Studio使用Entity Framework自动生成的OData v3控制器。筛选和排序操作工作正常,但分页不是。

问题似乎是网格将page = x和pageSize = y放入查询字符串中,但OData格式为$ top = x和$ skip = y。请注意,仅更改名称页面和pageSize是不够的,因为$ skip的值必须是index * pageSize。我已经尝试了多种编辑控制器的方式来支持page和pageSize,但无济于事。

我可以手动输入功能$ top和$ skip的OData请求网址到浏览器的地址栏中,然后获得想要的结果。有没有办法让Grid使用$ top和$ skip?网格本身在c#控制器中定义,并作为模型的一部分传递到页面中,我注意到因为我无法访问GridPaging对象的pageIndexUrlKey和pageSizeUrlKey属性。 grid.OData设置为true。

1 个答案:

答案 0 :(得分:1)

默认情况下,Grid MVC Helper Wrapper会将pageSizeUrlKeypageIndexUrlKey明确设置为自定义查询参数:pageSizepage。要使其发送OData参数,您应该在JavaScript中将pageSizeUrlKeypageIndexUrlKey设置为null。将以下代码放在页面底部:

    $(function () {
        $("#grid1").on("iggriddatabinding", function (evt, ui) {
            var features = ui.owner.options.features, i;
            for (var i = 0; i < features.length; i++) {
                if (features[i].name === "Paging") {
                    features[i].pageSizeUrlKey = null;
                    features[i].pageIndexUrlKey = null;
                }
            }
        });
    });

您应该将此代码放在Grid MVC Configuration之前,因为在创建网格期间会触发该事件,您应该在创建网格之前绑定它。