我有要求在页面加载时禁用页面中的保存和取消按钮。如果用户更改页面中的某些内容,我应该启用保存和取消按钮。要做到这一点,我使用
http://plugins.jquery.com/are-you-sure/如何在主表面中添加新行以检测表单中的更改
此插件工作正常,但有需要定制在许多情况下,一个像下面
我有一个像它由三个小组的项目组的页面。
LeftPanel:系统项目组列表
CenterPanel:分配给选定的项目组
RightPanel的项目列表:项目清单分配到一个项目组
现在假设我有一个DataTable
<p:dataTable var="itms" value="#{myBean.listOfItems}" rows="10"
paginator="true"
paginatorTemplate="{CurrentPageReport}
{FirstPageLink}
{PreviousPageLink}
{PageLinks}
{NextPageLink}
{LastPageLink}
{RowsPerPageDropdown}"
rowsPerPageTemplate="10,50,100">
</p:dataTable>
要指定项目的项目组将在右侧面板中选择项目并点击分配按钮,将添加到LISTOFITEMS在中心面板显示
listOfItems.addAll(selectedItems);
我调用插件中定义的重新扫描方法分配按钮oncomplete
来检测更改并跟踪添加的新记录,因为我想考虑添加或删除字段也是一个改变。
现在在页面加载时,如果选择了一个项目组,并且它已分配了13个项目,则可以看到包含10条记录的第一页。如果添加了任何项目,那么它们将被添加到后端列表的列表中。由于我在第一页并且页面具有完整的行插件,因此无法在窗体中找到任何更改。
如何在此场景中找到更改。
感谢您的回答。如果我没有在右侧面板中选择任何内容并单击分配按钮,它仍然会启用保存按钮。有些验证会阻止将一些记录分配给中心面板。所以这个解决方案不适合我。我已经想出了一个办法来做到这一点。我正在探索使其成为通用的所以在这里张贴延迟。我感谢你的努力。再次感谢:) – 2014-10-01 07:02:14
@Srikanth Ganji我还提到,在答案中,这将是很好的添加像[这个](http://stackoverflow.com/a/16796033/4056222)一些检查。但如果你愿意,我可以更具体。你可以检查那里的所有东西,客户端验证,如果你在动作之后通过了它们,你也可以检查callBackParams,或者你可以在你知道所有工作完成后,在你的行动结束时执行'oncomplete'中的内容。我不知道你个人的验证,所以我没有指定它们。无论如何,如果你有比这个hiddenInput更好的解决方案,我会读它:) – mrganser 2014-10-01 07:27:34
我的想法是有一个输出文本,它始终保存列表大小的值,并在每个ajax操作系统上更新为最新的数据大小。我会推荐插件来监控这个值,以引发一个变化。它在所有情况下都能很好地工作。但它会让你对所有页面都有一个输出文本,认为这不是什么大问题。我有另一个想法,依靠currentfacesReportTemplate =“(Number of Records:{totalRecords})”属性的primefaces datatable.With这不需要有输出文本或输入隐藏 – 2014-10-01 07:58:05