使用Kendo UI Grid设置初始页面

时间:2018-04-23 16:08:47

标签: kendo-ui kendo-grid

我知道以前曾经问过这个问题,但我出于某种原因无法让这个工作。

 @(Html.Kendo().Grid<MyViewModel>()
    .Name("KendoGrid")
    .Columns(columns =>
    {
     ---Columns---
    })
    .Events(e=>e.DataBound("onRowBound"))
    .Pageable(pageable => pageable.Refresh(true).PageSizes(true).ButtonCount(5))
    .Filterable()
    .Sortable()
    .DataSource(dataSource => dataSource
          .Ajax()
          .PageSize(20)
          .Model(model => model.Id(p => p.ModelId))
          .Read(read => read.Action("Action", "Controller").Data("Handler"))
        )
     .AutoBind(false)
 )

由于我的AutoBind为false,我在页面加载后调用函数来读取数据源:

$(document).ready(function () {
     ReadDataSource();
});


function ReadDataSource() 
{
    $("#KendoGrid").data().kendoGrid.dataSource.page(2);
}

(为简单起见,我现在正在对初始页码进行硬编码。只需说数据源至少有三页)。

每次导航到该页面时,它始终显示第一页。我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:0)

试试这个

function ReadDataSource() 
{
    var grid = $("#KendoGrid").data("kendoGrid");
    grid.one("dataBound", function () {
        this.dataSource.page(2);
    });
}

// Make sure you set the correct pageSize

function ReadDataSource() 
{
    $("#KendoGrid").data("kendoGrid").dataSource.query({ page: 2, pageSize: 20 });
}

答案 1 :(得分:0)

尝试将ReadDataSource函数更改为此

function ReadDataSource() 
{
    $("#KendoGrid").data("kendoGrid").dataSource.page(2);
}