Кнопка удаления не работает правильно для элемента повтора пользовательского интерфейса - PullRequest
0 голосов
/ 30 октября 2018

В одном из моих проектов мы используем jsf / primefaces для разработки и предъявляем особые требования не делать никаких вызовов ajax при размытии или изменении события поля ввода.

Нам нужно отобразить список записей. Пользователь также может добавлять или удалять записи.

Я использую ниже XHTML Cocde

       <h:form id="wizard_form">
    <p:outputPanel id="idBiomassPlantsPanel">
        <ui:repeat var="item" value="#{controller.iteamList}">
            <p:inputText id="field1" value="#{item.field}">
                <f:validateLongRange maximum="10" minimum="2" />
            </p:inputText>
            <p:message display="text" for="field1" />
            <p:commandLink id="idDeleteBiomassPlantsLink" value="Delete record"
                update="wizard_form:idBiomassPlantsPanel" immediate="true"
                process="@this" actionListener="#{controller.deleteBioMassPlants()}">
            </p:commandLink>
        </ui:repeat>
        <p:inputText id="testfield" value="#{controller.field}">
            <f:validateLongRange maximum="10" minimum="2" />
        </p:inputText>
    </p:outputPanel>
    <p:commandButton id="addBiomassPlantsButton" value="add new"
        action="#{controller.addBioMassPlantsData}" update="@form"
        process="@form" />
</h:form>

При нажатии кнопки «Добавить новый» мы обрабатываем всю форму пользовательского интерфейса. Эта кнопка работает нормально. если пользователь нажимает кнопку «Удалить запись», я не хочу запускать проверку, так как даже введены неправильные значения, пользователь должен иметь возможность удалить запись. Я использовал немедленный = «true», чтобы пропустить проверку, но в этом случае все поля ввода сбрасываются в NULL или в исходное значение других записей, которые не удаляются (например: если я ввожу три записи, а вторая запись удаляется, то значение третьей записи обновляется на ноль.)

Я попытался удалить немедленное = "true", так как я использую process = "@ this", тогда я столкнулся с той же проблемой.

Я создал одно тестовое поле ввода за пределами повтора пользовательского интерфейса. Значение этого поля не изменяется при нажатии кнопки удаления. Так что, похоже, проблема только с полями ввода, которые находятся внутри пользовательского интерфейса: повтор.

Любая помощь или указатель на это очень ценится.

...