В редактировании ячеек не обновляется значение при смене фокуса - PullRequest
1 голос
/ 07 июня 2019

Значение ячейки не фиксируется при изменении фокуса мыши

У меня есть простой набор данных, который показывает имя и доход.Значения ячеек доступны для редактирования.Когда я обновляю значение ячейки другим значением и нажимаю «Обновить» (в основном меняю фокус мыши), новое значение не фиксируется.Метод update печатает старое значение.Однако, когда я нажимаю клавишу «Tab», я вижу напечатанные обновленные значения.Я не уверен, что мне не хватает

Вот мой боб:

@PostConstruct
public void init() {        
    NVPair nvp = new NVPair("xx", 10000);
    dataList.add(nvp);
    nvp = new NVPair("yy", 20000);
    dataList.add(nvp);
}

public void update() {
    for (NVPair item : dataList) {
        System.out.println("Name: " + item.getName() + " Value: " + 
item.getValue());
    }
}

Вот вид:

 <h:form>
    <p:dataTable id="testTable" value="#{testBean.dataList}" var="item"
                editable="true" editMode="cell">
                <p:ajax event="cellEdit" listener="#{testBean.onCellEdit}"
                    immediate="true" update="testTable" />


                <p:column headerText="Name">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{item.name}" />
                        </f:facet>
                        <f:facet name="input">
                            <h:outputText value="#{item.name}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>

                <p:column headerText="Income">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{item.value}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{item.value}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>

            </p:dataTable>
            <p:commandButton action="#{testBean.update}" value="Update" />
        </h:form>

Когда фокус меняется,ожидая, что отредактированное значение захватывается так же, как при нажатии клавиши табуляции.

...