如何编辑可编辑列上的单元格以及在主要数据表

时间:2015-10-15 17:17:42

标签: jsf primefaces datatables jsf-2.2

使用

<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();并显示详细信息对话框。

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

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

1 个答案:

答案 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>