2015-10-15 30 views
0

一個primefaces的不可編輯欄編輯欄和開放的細節對話框行選擇電池使用如何編輯上的數據表

<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

我解決了使用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>