我是新來的primefaces。我正在從primefaces2.2遷移到primefaces3.1.1,因爲我必須在應用程序中包含primefaces3.1.1的新功能。<p:ajax>聽衆永遠不會叫
應用程序中有一個dragndrop功能。它與primefaces2.2工作正常,但是當我根據primefaces3.1.1的規範進行更改時。 dragndrop功能不起作用。
其實情景就像是
我有一個數據表,其中我是從數據庫中獲取價值和顯示。有一種可以治療的疾病。
數據錶行將被拖放到treetable區域。雖然這樣做我已經寫了監聽器,但它永遠不會被調用。
我在這裏提供的代碼
workflow.xhtml
<p:fieldset id="workflowtabs" legend="Drop here" rendered="#{workflowStep2Bean.childCount gt 0}">
<p:outputPanel id="dropArea">
<p:treeTable id="testtable" value="#{workflowStep2Bean.root}" var="selected" rendered="#{not empty workflowStep2Bean.root}" >
<p:column rendered="#{selected.type eq 'Folder'}">
<p:commandButton icon="ui-icon ui-icon-folder-open" disabled="true"/>
</p:column>
<p:column rendered="#{selected.type eq 'Folder'}" >
<h:inputText value="#{selected.name}" />
</p:column>
</p:treeTable>
</p:outputPanel>
</p:fieldset>
<p:fieldset id="testfields" legend="#{msg.tests}" rendered="#{workflowStep2Bean.childCount gt 0}">
<p:dataTable id="teststable" value="#{workflowStep2Bean.tests}" var="testList" >
<p:column style="height: 20px" headerText="Drag">
<h:outputText id="dragIcon" styleClass="ui-icon ui-icon-arrow-4"/>
<p:draggable for="dragIcon" revert="true" scope="#{dragIcon.position}" stack=".ui-icon ui-icon-arrow-4"/>
</p:column>
<p:column headerText="Name">
<h:outputText value="#{testList.name}"></h:outputText>
</p:column>
</p:dataTable>
</p:fieldset>
<p:droppable for="workflowtabs" tolerance="touch" activeStyleClass="ui-state-highlight" datasource="teststable" onDrop="handleDrop">
<p:ajax listener="#{workflowStep2Bean.onTestDrop}" update="dropArea teststable" />
</p:droppable>
,這裏是我的workflowStep2Bean.java
public void onTestDrop(DragDropEvent ddEvent) {
if (getTabs().size() > 0) {
TreeNode tab = getTabs().get(getTabs().size() - 1);
Test t = (Test) ddEvent.getData();
tests.remove(t);
((Tab) tab.getData()).getTests().add(t);
TreeNode tabC = new DefaultTreeNode(t, tab);
}
}
請告訴我,我做錯了。預先感謝
我使用primefaces 3.1.1,2.1.3 Mojorra,Glassfish的3.1.1,JSF2.0
我不確定是否這是拖放功能不起作用的原因,但是在PrimeFaces的第3版中,您現在必須指定「p:dataTable」的'rowKey'屬性來正確更新行選擇。這個'rowKey'表示唯一標識'value'集合中bean的bean屬性。不幸的是,展示會忽略了這一點,希望Primefaces團隊能儘快更新。您可以在Primefaces手冊中獲得更多信息。 – 2012-03-02 12:57:52
感謝您的評論。請給我發送primefaces手冊的鏈接以及鏈接,我可以看到指定數據表示例中的rowkey – Sharath 2012-03-05 07:42:47
您可以在此處下載... http://www.primefaces.org/documentation.html – 2012-03-05 12:23:00