如何编辑可编辑列上的单元格并在 primefaces 数据表的不可编辑列上打开行选择的详细信息对话框

how to edit cells on editable column and open detail dialog on row selection on non-editable columns of a primefaces datatable

正在使用

<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 上连续 select 时,我可以打开一个对话框。

如何将 editable 列添加到进入编辑模式的 table 列,而不是在单击其中一个单元格时打开详细信息对话框?

我的第一个想法是简单地创建列 editable 并执行一个 oncomplete 函数来检查列 selected 是否为 editable:

如果是,就让它进入编辑模式;如果不是,它将调用 PF('issueDetail').show(); 并显示详细信息对话框。

只是我不知道如何检查特定列是否已 selected。我怎样才能做到这一点?

我应该这样做还是有更简单的解决方案?

我使用 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>