2012-05-16 42 views

回答

0

我不完全知道你想要什麼。這可以自動完成,就像在p:inputText中輸入內容一樣,它可以在不需要手動更新的情況下在beans屬性中表示值p:inputText

只需使用getTarget()getSource()方法訪問pickList中的更新值即可。你可能試圖訪問lists您喜歡直接提供給DualListModel

DualListModel<fooType> fooModel = new DualListModel<fooType>(fooList1,fooList2); 
// transfer item 
// check if fooList2 is updated - this is wrong, it is **not** updated 
fooModel.getTarget(); // this way you can get the actual values of target list 

target - 右邊,source - 一個pickList的左側。

2

在XHTML:

<p:pickList value="#{myBean.myDepartment}" onTransfer="handleTransfer(e)"....> 

在豆:

List<Department> selectedDepartments = new ArrayList<Department>(); 
List<Department> availableDepartments = getAvailableDepartments(); 

private DualListModel<Department> myDepartment; 
myDepartment = new DualListModel<Department>(availableDepartments, selectedDepartments); 

在提交,由用戶選擇部門可以使用selectedDepartments

和腳本訪問...

<script type="text/javascript"> 
function handleTransfer(e) { 
    item = e.item; 
    alert(item.text()); 

    fromList = e.from; 
    toList = e.to; 
    type = e.type; //type of transfer; command, dblclick or dragdrop) 
} 
</script> 
+0

更復雜的是一個。我想要做的是接下來的事情。當我點擊目標項目上的JUST時,顯示一個輸出面板。我做了這個,但不正確的cuz,當我點擊一個源項目,outputpanel也顯示,所以,我需要檢查的Bean如果項目是在目標或來源,我不能提交,我不能把一個按鈕來「確認」或類似的(不能因爲項目的重新設定)。所以我需要在將項目移動到目標時更新bean中的列表。我不知道現在是否更清楚... – dcalap

+0

我很抱歉。要求尚不明確。當一個項目從源移動到目標時,該選定的項目會自動推送到我的示例中的selectedDepartments列表。所選的項目在列表selectedDepartments中可用於進一步處理 – rags

+0

就像你說的,在提交時,selectedDepartments可以被接受,但是當你只是將項目拖到目標(沒有提交過程)時纔可以接受。這就是我想要的,在onTransfer事件中,像提交動作一樣更新目標列表。現在清楚了嗎? – dcalap