gpt4 book ai didi

java - Java 中的 Dojo 增强网格分页

转载 作者:行者123 更新时间:2023-11-30 08:57:37 24 4
gpt4 key购买 nike

我有一个使用门户框架的 Restful 网络服务,它从数据库中获取数百行。我想在 Dojo EnhancedGrid 上显示分页,每次使用页码 10|20|30 显示 10 行。我可以用这个例子进行分页但是我的其余网址正在加载数据库中的所有记录导致性能问题。应该有一些事件,每次当我点击页码时,它应该调用 rest url 并从数据库中获取 10 条记录。我怎样才能做到这一点?

最佳答案

Dojo Enhanced Grid with Pagination 在每次需要时调用后端 REST 服务(点击下一页/上一页/上一页/特定页面/每页 x 个结果等。 Range items=0-9 将返回前 10 个项目,依此类推)。所以这是由分页支持自动完成的。

你要做的就是在后端REST服务中读取这个参数,并从数据库中返回指定的行。但要小心,分页需要来自数据库的对象数组。

@GET
@Path("getSearchResults")
@Produces(MediaType.APPLICATION_JSON)
public Response getSearchResults(@HeaderParam("Range") String range) {
// parse range String
// perform search
return Response.ok(responseList.toArray()).header("Content-Range", "items " + startItem + "-" + endItem + "/" + totalItems).build();
}

响应还应包含返回的项目数和总项目数,以便分页知道要在网格中显示多少页,它还会在网格的左下角显示总数。此响应在响应的 header 中以及以下参数中返回:Content-Range items 0-9/120。如果没有结果,请使用 Content-Range: */0

在 Dojo 方面:

store=new JsonRest({ handleAs: 'json', target: 
'{pathToServices}/rest/services/getSearchResults'});
grid = new EnhancedGrid({
id: "gridId",
store: new ObjectStore({ objectStore: store}),
structure: getGridStructure(),
plugins: {
pagination: {
pageSizes: ["25", "50", "100"],
description: true,
sizeSwitch: true,
pageStepper: true,
gotoButton: true,
maxPageStep: 4,
position: "bottom"},
}
});

这就是您要做的所有事情,增强型网格分页会处理其他所有事情。

关于java - Java 中的 Dojo 增强网格分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com