首页 文章

加载新数据后,Kendo网格寻呼机问题

提问于
浏览
0

将新数据加载到网格后,我遇到了Kendo网格寻呼机行为不端的问题 . 页面加载时加载网格,配置如下:

@(Html.Kendo().Grid<MyModel>()
            .Name("Grid")
            .Columns(columns =>
            {
                //snipped  
            })
            .Scrollable()
            .Sortable(sort => sort.Enabled(true))
            .Pageable(pager => pager.PageSizes(new int[] {10, 25, 50, 100}))
            .Events(events => events.DetailExpand("detailExpand").DetailCollapse("detailCollapse").DataBinding("onDataBinding"))
            .ClientDetailTemplateId("template")
            .DataSource(dataSource => dataSource
                .Ajax()
                .ServerOperation(false)
                .Sort(sort => sort.Add(Model.sort).Order(Model.Direction))
                .PageSize(Model.PageSize)
                .Events(events=>events.Error("onError"))
                .Read(read => read.Action("Summary", "Summary").Data("getFilterModel")))
                .Events(events => events.DataBound("dataBound"))
                .Resizable(resize => resize.Columns(true))
                .Reorderable(reorder => reorder.Columns(true))
              );

我在页面上有一些控件作为网格内容的过滤器 . getFilterModel函数返回这些过滤器的值 . 当用户单击“过滤器”按钮时,我调用网格数据源上的读取 .

<button class="k-button" id="get" type="button" onclick="$('#Grid').data('kendoGrid').dataSource.read();return false;">Filter</button>

这在初始页面加载时工作正常,如果我重新加载网格的行数<=原始行数 . 如果我使用更多行重新加载,则寻呼机显示正确的计数 . 但是,如果我尝试单击以前进到下一页,则寻呼机将恢复为仅显示1页,并且网格显示为空 .

示例:初始加载包含3条记录,页面大小为25. Pager显示1页 . 好 . 更改过滤器,以便网格加载42行 . 寻呼机显示2页,设置为第1页,“1-25项中的1-25” . 点击进入第2页;网格显示没有行,寻呼机显示1页和“26-25 of 25 items”

是否需要以某种方式明确重置寻呼机?

这是Kendo MVC的旧版本... DLL显示版本2013.3.1119.340 .

1 回答

  • 0

    在这种情况下,剑道MVC和我超越自己 .

    getFilterModel 函数返回了一个包含 PagePageSize 属性的对象,这些属性将转换为HTTP请求中的查询参数名称 . 这些又成为FilterModel对象的属性,FilterModel对象是控制器动作的模型 . 在服务器端,控制器操作调用Kendo ToDataSourceResult 扩展方法,该方法显然解释 PagePageSize 并且仅返回结果的第一页 .

    将这些属性的名称更改为 GridPageGridPageSize 解决了该问题 . 我把它们包括在内是因为我想把它们作为网格状态的一部分来保留,但是我可能最好找到另一种方法来做到这一点 .

相关问题