使用
<p:dataTable
id="myissues"
value="{myIssuesController.myIssuesListModel.issueList}"
var="issueElement"
selection="#{issue}"
selectionMode="single"
rowKey="#{issueElement.idIssue}"
>
以及:
<p:ajax
event="rowSelect"
listener="#{myIssuesController.onSelectOneRow}"
update=":issueDetail"
oncomplete="PF('issueDetail').show();"
/>
当我在dataTable
上选择一行时,我可以打开一个对话框。
如何在进入编辑模式的表格中添加可编辑列,而不是在单击其中一个单元格时打开详细信息对话框?
我的第一个想法是简单地使列可编辑并执行一个oncomplete函数,检查所选列是否可编辑:
如果是,它将进入编辑模式;如果没有,它将调用PF('issueDetail').show();
并显示详细信息对话框。
只有我不知道如何检查是否已选择特定列。我怎样才能做到这一点?
我应该这样做还是有更简单的解决方案?
答案 0 :(得分:0)
我使用primefaces selection解决了。
基本上,我删除了<p:ajax>
组件,并添加了一个带有放大镜图标和行编辑器图标的额外列,以打开详细信息对话框/编辑条目;这是一种比使用行选择操作更直观,用户友好的解决方案。额外的列如下所示:
<p:column style="width:32px;text-align: center">
<p:commandButton update=":issueDetail"
action="#{myIssuesController.onSelectOneRow}"
oncomplete="PF('issueDetail').show()"
icon="ui-icon-search" title="View" />
<p:rowEditor />
</p:column>