Использование свойства закрытия панели Все панели исчезают при удалении JSF Primefaces - PullRequest
0 голосов
/ 03 декабря 2018

Я использую Primefaces 6.1 и создаю панель в пользовательском интерфейсе: повторите с помощью командной кнопки, но когда я использую свойство pannel closable = "true" с ajax event = "close", он не запускает все методы получения и установки, а также, если япопробуйте удалить одну созданную панель, она не будет отображаться снова при создании во время создания моего компонента поддержки, но он не будет отображаться в пользовательском интерфейсе, тот же сценарий для второй последней панели удаляет все созданные панели и возвращает их после восстановления.

Вот код xhtml:

<p:outputPanel binding="#{chatbotNewsAlertBean.pullMessagesPanel}"
    id="pullMessagesPanel">
    <ui:repeat value="#{chatbotNewsAlertBean.pullMessages}"
        var="pullMessage" varStatus="status">
        <p:panel id="pullMessage" toggleable="true" closable="true"
            collapsed="true" visible="true"
            header="Pull Message #{status.index+1}">

            <p:ajax event="close"
                listener="#{chatbotNewsAlertBean.onClose(status.index)}" />
        </p:panel>
    </ui:repeat>
</p:outputPanel>
<p:column style="text-align: right;">
    <p:commandButton id="addNewPullMessageButton" value="Add Pull Message"
        action="#{chatbotNewsAlertBean.initializeNumberOfForms()}"
        update="pullMessagesPanel nextButtonText buttonPosition" />
</p:column>

И мой бэкэнд-компонент:

@ManagedBean(name = "chatbotNewsAlertBean")
@Persistent
@ViewScoped
public class ChatbotNewsAlertManagedBean extends ChatbotNewsAlertBean
{public void initializeSubsurveysList()
    {
        if (this.getNumberOfPullMessages() == null)
        {
            this.setNumberOfPullMessages(0);
        }

        numberOfPullMessages = numberOfPullMessages + 1;
        pullMessages.add(new PullMessagesManagedBean());
        log.info("PULL MESSAGES SIZE:" + pullMessages.size());
    }

    /**
     * thi method will delete single entry from the list of pul messages
     * 
     * @param index
     *            of the selected pull message to be deleted
     */
    public void onClose(int index)
    {
        pullMessages.remove(index);
        numberOfPullMessages = numberOfPullMessages - 1;
        log.info("PULL MESSAGES SIZE:" + pullMessages.size() + " DELETING INDEX VLUE AT:" + index);
        log.info("PULL MESSAGES SIZE:" + pullMessages.size());
    }
}

Я не знаю, почему этот вызов ajax создает проблемы с событием close.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...