0

我正在使用 JSP struts 2 创建一个动态表管理器,后端是普通的 oracle DB。

这一切都完成了。如果我将页面限制设置为 10,那么在更改页面时,只会获取并显示接下来的 10 组行。所以基本上在任何时候我的页面中都只有 10 行。现在我想在这个表管理器中添加按列排序的功能,它类似于一个 Excel 表,我们可以按列按升序或降序排序。

我该怎么做呢 ?

我的想法是每次单击列时,我都会执行操作并按升序或降序获取行。

这是最佳方式还是有其他最佳解决方案?

4

4 回答 4

0

您以 JSON 对象的形式获取所有数据并使用 javascript 创建表(您也可以提供分页 - 带有逻辑)。在javascript中创建一个创建表的函数。现在,只要完成排序(asc 或 desc),就在该特定列上对 JSON 对象进行排序。然后再次在 javascript 中调用您的“创建表”函数。这将防止进行服务器端调用或数据库调用。处理将在您的客户端完成,这将提高您的性能。
TIP:一次性获取所有表格数据并传给前端

更新:
对您的 json 对象进行排序 根据“名称”属性对对象进行排序
var sortedArray = myArray.sort(function(a,b){
if (a.name < b.name)
return -1;
else if (a.name == b.name)
return 0;
else
return 1;
});

于 2013-02-06T05:30:35.960 回答
0

以下是您可以采取的多种方法

  1. 使用 order by 对 DB 中的数据进行排序并显示结果。为此,您可以使用DISPLAYTAG等支柱已经可用的显示标签

2. 使用 JavaScript 库(如 Jquery 示例TableSorter )对 HTML 页面上的表格进行排序

3.从 Db 中获取一次数据并将其存储在会话中并使用 java.util.Comparator 对其进行排序:请参阅

于 2013-02-07T12:50:47.990 回答
0

如果您只使用表格,请查看以下链接。它是 Jquery 数据表插件。它提供分页,选择每页最大行数和列排序。

http://www.datatables.net/examples/

于 2013-03-13T04:09:50.040 回答
-1

好的,你有两个选择,要么使用你自己的分页逻辑,要么尝试使用struts2-jquery-grid-plugins

此链接是有关如何在应用程序中使用网格的完整文档

http://code.google.com/p/struts2-jquery/wiki/GridTag

这是 struts2-grid-plugin 的工作演示

http://struts.jgeppert.com/struts2-jquery-grid-showcase/index.action

以及您可以在这里下载战争文件或源代码 http://code.google.com/p/struts2-jquery/downloads/list find struts2-jquery-mobile-showcase-3.5.1.war

于 2013-02-06T05:37:48.617 回答