Вызов Ajax p: dataTable cellEdit не вызывает действие

Просмотр:

    <h:form>
<p:dataTable rows="10" id="analysisListTable" value="#{analyses}" var="anl" resizableColumns="true" editable="true" editMode="cell">

    <p:ajax event="cellEdit" listener="#{analysisBean.onCellEdit}" />

    <p:column headerText="Aktif" footerText="Aktif" sortBy="#{anl.active}" width="40" styleClass="TexAlCenter">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{anl.active?' Evet':' Hayır'}"/>
            </f:facet>
            <f:facet name="input">
                <h:selectBooleanCheckbox value="#{anl.active}" title="Aktif"></h:selectBooleanCheckbox>
            </f:facet>
        </p:cellEditor>
    </p:column>

Действие:

import org.primefaces.event.CellEditEvent;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.mockingjay.bird.AnalysisBeanInterface;
import org.mockingjay.bird.Model.Analysis.Analysis;

import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;

/**
 * Created by Erhan FIRAT on 15.01.2016.
 */

@Stateful
@Name("analysisBean")
@Scope(ScopeType.SESSION)
public class AnalysisBean implements AnalysisBeanInterface {

@PersistenceContext
private EntityManager em;

@DataModel
private List<Analysis> analyses;

@DataModelSelection
@Out(required=false)
private Analysis analysis;


@Factory("analyses")
public void findAnalyses(){
    analyses = em.createQuery("select anl from Analysis anl").getResultList();
}


public void onCellEdit(CellEditEvent event) {
    Object oldValue = event.getOldValue();
    Object newValue = event.getNewValue();

    System.out.println(analysis.title + " > Active = " + analysis.isActive() + " olarak kaydedildi.");
}

Когда я запускаю сервер, таблицы данных поставляются с данными. И когда я щелкаю ячейку, она меняется с outputText на selectBooleanCheckbox. Однако, когда я меняюсь, действие onCellEdit не вызывается.


person efirat    schedule 20.01.2016    source источник
comment
он разрабатывается в Seam Framework. Эти аннотации, кажется, в порядке в соответствии с документацией здесь: docs.jboss.org /seam/latest/reference/html/tutorial.html   -  person efirat    schedule 20.01.2016
comment
возможно, новое логическое значение не будет отправлено сразу   -  person Raphael Roth    schedule 21.01.2016


Ответы (1)


Вы должны попробовать «AjaxBehaviourEvent» вместо «CellEditEvent», вы можете снова использовать его в функции. Это решило аналогичную проблему, которую я имел.

person Lule    schedule 20.01.2016
comment
Вы пытались использовать событие для booleanCheckbox? - person Lule; 20.01.2016