【问题标题】:Dojo enhanced grid pagination in javaDojo 在 java 中增强了网格分页
【发布时间】:2015-01-20 19:04:22
【问题描述】:

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

【问题讨论】:

标签: java dojo restful-url


【解决方案1】:

Dojo Enhanced Grid with Pagination 每次需要时都会调用后端 REST 服务(单击下一页/最后一页/上一页/特定页面/每页 x 结果等等..)它在请求的 Header 中传递 Range 参数,指示它为当前查询请求的项目数(即 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

道场方面:

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"},
        }
    });

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

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 2019-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多