1

我正在使用 JSP displaytag标签库来创建 HTML 表格。我希望用户能够单击列标题以对数据进行排序。我的 JSP 代码如下所示:

<display:table name="tableData" id="stat" sort="page">
  <display:column property="name" title="Name" sortable="true"/>
  <display:column property="age" title="Age" sortable="true"/>
</display:table>

我认为这会导致数据在客户端(在 JavaScript 中)进行排序,但它实际上所做的是在返回服务器的列标题上创建一个损坏的超链接。

是否可以使用 displaytag 在客户端对数据进行排序?如果是这样,怎么做?

干杯,唐

4

2 回答 2

7

据我所知,这是不可能的。JQuery 的表排序器可能适用于它用于示例的小表,但大多数表必须来自实际数据库。这个命中太大了,不能简单地检索所有数据,然后再将这些信息返回给客户端,然后允许对其进行排序。

Displaytag 有一个标签的“requestURI”元素,允许其请求转到您配置的 url-handler。

所以,如果你使用这个:

<display:table requestURI="yourUrlMappedController.yourExtension" ...>

这将允许从控制器再次检索数据的权宜之计解决方案。

但最终,您将希望最终制定出一种策略,该策略使用 displaytag 排序参数作为“order by”子句中的选项,并从数据库中分页数据,而不是一次全部提取。这是一件棘手的事情,但前期的努力在性能方面可能是非常有益的。

displaytag 网站有三件事你应该经常检查以供参考,就像旁白一样。标签参考配置指南,当然还有他们的(可下载的)实时示例。

于 2008-11-06T01:07:06.810 回答
2

看看使用jquery及其出色的tablesorter API。这将允许您使用 Javascript 在客户端对表进行排序。

于 2008-11-05T23:05:28.350 回答