在单元格中编辑不会更新焦点更改的值

时间:2019-06-07 02:46:55

标签: primefaces jsf-2.2

更改鼠标焦点时无法捕获单元格值

我有一个简单的数据表,其中显示了姓名和收入。单元格值是可编辑的。当我使用其他值更新单元格值并单击“更新”(基本上更改鼠标焦点)时,不会捕获新值。更新方法 打印旧值。但是,当我按下“ 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>

当焦点改变时,我希望可以像按下Tab键一样捕获已编辑的值。

0 个答案:

没有答案