当在primefaces rowEditor组件中单击取消按钮时,我一直在尝试调用一个自定义侦听器。但我找不到正确的属性来做这件事。
取消按钮的问题是,当数据表中已经存在一行时,它可以正常工作,如果我试图动态地向数据表中添加一个新行,并单击取消按钮[如果我认为这不是必需的],则空行会显示在数据表中,而空行应该被删除。
你能帮我一下吗?
试一下(JSF2+Primefaces 2.2.1)…
<p:column headerText="Test">
<p:rowEditor>
<p:ajaxStatus oncomplete="#{yourBean.yourHandleMethod()}"></p:ajaxStatus>
</p:rowEditor>
</p:column>
恐怕此功能无法开箱即用。rowEditor组件内置了与dataTable及其自己的事件和侦听器的集成,用于编辑单个现有行。rowEditor组件的取消按钮的唯一功能是切换Primefaces列组件的输出和输入方面。
如果你擅长jQuery,你可以通过cancel按钮类jQuery('.ui-icon-close')
找到DOM元素并分配一个自定义的javascript事件监听器来破解它的功能,但这在有多行的dataTable中可能会有问题,如果选择了cancel,听起来你似乎想删除一个空行。
一个更好的方法是创建一个"添加新"按钮,显示带有表单的对话框。通过对话框中的表单提交可以将必要的行添加到dataTable中。