如何将页码传递给 kendo 数据源,以便它可以加载第 2 页的数据?
How to pass page number to kendo datasource, so it could load data of page 2?
以下代码构建我的 kendo 数据源:
var dataSource = new kendo.data.DataSource({
serverPaging: true,
schema: {
data: "ListMediaSummary",
total: "RowCount",
},
transport: {
read: {
url: gAppBaseURL + "UniversalSearch/SearchData?searchText=" + searchText + "&pageNumber=" + page,
type: "POST",
dataType: "json",
}
},
parameterMap: function (data, type) {
if (type == "read") {
return {
$top: data.take,
$skip: data.skip
}
}
},
page: 1,
pageSize: 25,
});
然后我从这里将参数 "searchText" 和 "PageNumber" 从 transport.read 方法传递到我的 asp.net 控制器中的 Action 方法,之后搜索结果被渲染到 kendo listView 中。
操作方法获取 "searchText" 值但它没有获取 pageNumber?虽然在 post 中它确实传递了页码(在 firebug 中选中)但我想要的是将页码传递给函数中的 transport.read 方法。我怎样才能做到这一点?
要启用服务器分页,您应该配置数据源以启用serverPaging
。然后数据源会将数据项的分页实现交给远程服务。默认情况下,数据源在客户端执行分页。
<script>
var dataSource = new kendo.data.DataSource({
transport: {
/* transport configuration */
},
serverPaging: true,
schema: {
total: "total" // total is returned in the "total" field of the response
}
});
</script>
如果将 serverPaging 设置为 true,请不要忘记设置 schema.total。
启用服务器分页后,以下选项会发送到服务器:
- page - 到return的数据项的页码(1表示第一页)
- pageSize - 项目数 return
- skip - 要跳过多少数据项
- 取-数据项的个数return(同
pageSize)
因此,您应该将控制器操作方法更改为如下内容:
public ActionResult GetData(int page, int pageSize, int skip, int take){
// do some magic operation
}
以下代码构建我的 kendo 数据源:
var dataSource = new kendo.data.DataSource({
serverPaging: true,
schema: {
data: "ListMediaSummary",
total: "RowCount",
},
transport: {
read: {
url: gAppBaseURL + "UniversalSearch/SearchData?searchText=" + searchText + "&pageNumber=" + page,
type: "POST",
dataType: "json",
}
},
parameterMap: function (data, type) {
if (type == "read") {
return {
$top: data.take,
$skip: data.skip
}
}
},
page: 1,
pageSize: 25,
});
然后我从这里将参数 "searchText" 和 "PageNumber" 从 transport.read 方法传递到我的 asp.net 控制器中的 Action 方法,之后搜索结果被渲染到 kendo listView 中。 操作方法获取 "searchText" 值但它没有获取 pageNumber?虽然在 post 中它确实传递了页码(在 firebug 中选中)但我想要的是将页码传递给函数中的 transport.read 方法。我怎样才能做到这一点?
要启用服务器分页,您应该配置数据源以启用serverPaging
。然后数据源会将数据项的分页实现交给远程服务。默认情况下,数据源在客户端执行分页。
<script>
var dataSource = new kendo.data.DataSource({
transport: {
/* transport configuration */
},
serverPaging: true,
schema: {
total: "total" // total is returned in the "total" field of the response
}
});
</script>
如果将 serverPaging 设置为 true,请不要忘记设置 schema.total。
启用服务器分页后,以下选项会发送到服务器:
- page - 到return的数据项的页码(1表示第一页)
- pageSize - 项目数 return
- skip - 要跳过多少数据项
- 取-数据项的个数return(同 pageSize)
因此,您应该将控制器操作方法更改为如下内容:
public ActionResult GetData(int page, int pageSize, int skip, int take){
// do some magic operation
}