1

需要在 jsf 中对数据表进行排序(不使用丰富的素面),并且该表应该具有多选选项来选择特定的行。以便可以删除选定的行。使用表单中的删除按钮。

谁能提供一些想法如何使用 ajax 或普通的 jsf 东西来做到这一点?我正在使用 JSF 1.2 版本。

我已经完成了谷歌搜索,但我无法看到任何示例。

任何帮助表示赞赏

4

2 回答 2

3

有2个不同的问题。对于排序,您可以简单地使用“tomahawk”库的“Datatable”标签,其中包含名为“sortable”的属性。您只需将其设置为“true”,它就会解决您的问题。

将此条目放在您的页面中

    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

要删除多个选定的行,请将您的数据表与 htmlDataTable 绑定并在您的 bean.like 中取一个布尔值...

       <t:dataTable binding="#{bean.htmlDataTable}" 
        sortable="true">

数据表的列

          <t:selectBooleanCheckbox id="select1" value="#{item.editable} valueChangeListener="#{bean.yourMethod}" onclick="submit()">

这里 editable 是你的 bean 中的布尔值。

删除行

   for(int i=0; i<yourList.size(); i++)
    {
      YourBean obj=(yourBean)htmlDataTable.getRowData();
      if(obj.isEditable())
      yourList.remove(i);

     }
于 2013-06-12T12:28:00.290 回答
0

使用h:dataTable从 POJO 的 ArrayList 中显示您的行。此 POJO 应该有一个布尔值来表示其选择。(POJO 的 ArrayList 必须在您的托管 Bean 中。)然后将该布尔变量映射到 ah:selectBooleanCheckBox 中列和渲染。

如何使用 h:selectBooleanCheckBox 的示例

要删除选定的复选框,请在托管 Bean 中编写一个方法,以访问数据表中的选定值,并将其从 ArrayList 中删除并呈现页面。

对于排序,请遵循类似的方法,在 ManageBean 中编写一个方法,当单击用于排序/删除的 commandLink/commandButton 按钮时,该方法将对 arrayList 执行排序。注意:我不太了解在 Faces 1.2 中使用 Ajax,所以我的方法就像用 ah:form 包装数据表并提交此表单以访问排序、删除的方法。

于 2013-06-23T09:58:37.150 回答