【发布时间】:2014-04-10 09:32:07
【问题描述】:
我面临一个问题,我想测试用户是否从rich:dataTable 的多个页面中选择了任何记录。这些页面是通过rich:datascroller 创建的。相关代码如下。
<rich:datascroller id="dataScroller" selectedStyleClass="myClass" renderIfSinglePage="false"
align="center" for="dataList" maxPages="10"
pageIndexVar="currentPage" pagesVar="totalPages" reRender="pageNum,dataList" ajaxSingle="false">
<f:facet name="first"><h:outputText value="First" /></f:facet>
<f:facet name="last"><h:outputText value="Last" /></f:facet>
</rich:datascroller>
<h:inputHidden id="pageNum" value="#{currentPage}"></h:inputHidden>
<h:inputHidden id="numOfRows" value="10"></h:inputHidden>
问题在于,如果用户选择了一条记录(比如在第 3 页),然后他移至第一页。现在在这种情况下,当我尝试遍历 Java Script 中的表以知道他是否选择了任何记录时,它总是允许我迭代直到我所在的当前页面,因此我无法给用户正确的警报消息,用于在按下提交按钮时首先选择记录。我只想知道用户已根据可用页面中任何页面上的记录选中复选框,而不管当前在哪个页面上打开。有什么想法吗?
【问题讨论】:
-
如果用户离开了,那么你应该把它当作他没有选择任何东西,不是吗?
-
不,我只想在他在所有页面上完成选择后按下提交按钮时才向他显示警报消息
-
我不明白,你能给我一个用例吗?用户来到桌子旁,他在做什么? (或者你想让用户做什么?)
-
实际上我拥有这个 Rich:dataTable 的页面也有许多其他字段,但是从 Rich:dataTable 中的可用记录中选择一条记录是成功持久化更改所必需的。现在,如果用户已完成所有强制性工作,但尚未从 rich:dataTable 中选择记录并按下提交按钮,在这种情况下,我会向他显示您忘记从表中选择记录的警报消息。现在由于该页面包含多个页面(由于使用rich:datascroller),用户可以选择可用页面上的任何记录并按下提交按钮。