Я новичок в связях. Я переношусь из primefaces2.2 в primefaces3.1.1, потому что я должен включать новые функции primefaces3.1.1 в приложение.<p:ajax> прослушиватель никогда не называется
В приложении были функциональные возможности dragndrop. Он отлично работает с primefaces2.2, но когда я вносил изменения в соответствии со спецификациями primefaces3.1.1. Функциональность dragndrop не работает.
На самом деле сценарий, как
У меня есть DataTable, где я получаю значение из базы данных и отображение. Существует трещино.
Данную строку следует перетаскивать и опускать на подлежащую область. При этом я написал слушателя, но он никогда не называется.
Здесь я привожу код
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, Mojorra 2.1.3, 3.1.1 Glassfish, JSF2.0
Я не уверен, что это причина, по которой функция переадресации не работает, но в версии 3 из PrimeFaces вам теперь нужно указать атрибут 'rowKey'' для параметра выбора строки для корректного обновления строки. Этот 'rowKey' представляет свойство bean, которое однозначно идентифицирует bean-элемент в коллекции' value'. К сожалению, витрина пренебрегает этим, надеюсь, команда Primefaces скоро ее обновит. Вы можете получить дополнительную информацию об этом в руководстве по интерфейсам. –
Спасибо за ваш комментарий. Не могли бы вы послать мне ссылку руководства по разделам, а также ссылку, в которой я могу увидеть, как указывать строку в примере данных – Sharath
. Вы можете скачать ее здесь ... http://www.primefaces.org/documentation.html –