Как получить предварительно отредактированное значение из столбца dataTable в Primefaces? - PullRequest
0 голосов
/ 08 ноября 2018

При нажатии на кнопку редактирования в PrimeFaces я хочу, чтобы мой слушатель получил новое значение столбца, а также старое. В настоящее время я получаю только новое значение:

public void onLicenseEdit(RowEditEvent event) {
    selectedItemLicense = (ItemLicense) event.getObject();
}

Это мой xhtml:

<p:dataTable id="licenses" var="license"
    value="#{itemShowView.itemReference.lastVersionItemLicenses}"
    emptyMessage="#{messages['common.emptymessage']}"
    class="itemLicensesTable"
    selection="itemShowView.selectedLicense"
    editable="true">
    <p:ajax event="rowEdit" update="@(.itemLicensesTable)" listener="#{itemShowView.onLicenseEdit}"  />
    <f:facet name="header">

    <p:column headerText="#{messages['license.licensenumber']}">
        <p:cellEditor>
            <f:facet name="output">
                <h:outputText value="#{license.licensePK.licenseNumber}" />
            </f:facet>
            <f:facet name="input">
                <p:inputText value="#{license.licensePK.licenseNumber}" />
            </f:facet>
        </p:cellEditor>
    </p:column>

    ...

    <p:column>
        <p:rowEditor />
    </p:column>

    ...
</p:dataTable>

Пожалуйста, помогите. Заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Спасибо за ваш комментарий.Я изменил код, используя valueChangeListener.Это мое решение:

<f:facet name="input">
    <p:inputText value="#{itemLicense.itemLicensePK.licenseNumber}" valueChangeListener="#{itemShowView.onLicenceChange}"/>
</f:facet>

и код Java:

private ItemLicense selectedItemLicenseForModification;

...

public void onLicenceChange() {
    selectedItemLicenseForModification = (ItemLicense) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("itemLicense");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...