我正在使用 JSP struts 2 创建一个动态表管理器,后端是普通的 oracle DB。
这一切都完成了。如果我将页面限制设置为 10,那么在更改页面时,只会获取并显示接下来的 10 组行。所以基本上在任何时候我的页面中都只有 10 行。现在我想在这个表管理器中添加按列排序的功能,它类似于一个 Excel 表,我们可以按列按升序或降序排序。
我该怎么做呢 ?
我的想法是每次单击列时,我都会执行操作并按升序或降序获取行。
这是最佳方式还是有其他最佳解决方案?
我正在使用 JSP struts 2 创建一个动态表管理器,后端是普通的 oracle DB。
这一切都完成了。如果我将页面限制设置为 10,那么在更改页面时,只会获取并显示接下来的 10 组行。所以基本上在任何时候我的页面中都只有 10 行。现在我想在这个表管理器中添加按列排序的功能,它类似于一个 Excel 表,我们可以按列按升序或降序排序。
我该怎么做呢 ?
我的想法是每次单击列时,我都会执行操作并按升序或降序获取行。
这是最佳方式还是有其他最佳解决方案?
您以 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;
});
以下是您可以采取的多种方法
2. 使用 JavaScript 库(如 Jquery 示例TableSorter )对 HTML 页面上的表格进行排序
3.从 Db 中获取一次数据并将其存储在会话中并使用 java.util.Comparator 对其进行排序:请参阅此
如果您只使用表格,请查看以下链接。它是 Jquery 数据表插件。它提供分页,选择每页最大行数和列排序。
好的,你有两个选择,要么使用你自己的分页逻辑,要么尝试使用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