Как перерисовать с помощью

Я реализовал список, созданный повторителем:

<ui:repeat value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>

и кнопку, которая фильтрует мой список:

<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
</h:commandLink>

Итак, есть ли простой способ визуализации только моего повторителя? после щелчка по ссылке на команду (с AJAX): -)


я попробовал следующее:

<f:ajax render="repeater">
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>
<f:ajax />


<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
<f:ajax event="click" render="repeater"/>
</h:commandLink>

, но это не сработало ..


Обновление

<h:form>
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>

<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
<f:ajax event="click" render="repeater"/>
</h:commandLink>
</h:form>

тоже не работает ... Может быть, я должен поставить Метод действия (OverviewController.filterNew) в тег ajax?


Обновление 2

    <f:ajax event="click" render="repeater">
    <h:commandLink action="#{overviewController.filterEBus}">
    <h:outputText value="EBusiness" />
    </h:commandLink>
    </f:ajax>

Также не работает!


Может быть, невозможно воспроизвести ретранслятор? есть ли другой элемент, такой как тег div, или что-то, что можно перерисовать ???

...

Спасибо за вашу помощь

11
задан BalusC 5 September 2013 в 15:55
поделиться

4 ответа

сам по себе не генерирует HTML для вывода. ожидает идентификатор, присутствующий в дереве DOM HTML. Поместите его в группу с идентификатором id и укажите ссылку на него.

<h:form>
    <h:panelGroup id="projects">
        <ui:repeat value="#{projectData.paginator.list}" var="project">
            <h:outputText value="#{project.title}" />
        </ui:repeat>
    </h:panelGroup>
    <h:commandLink action="#{overviewController.filterNew}">
        <h:outputText value="Filter List" />
        <f:ajax execute="@form" render="projects" />
    </h:commandLink>
</h:form>
27
ответ дан 3 December 2019 в 02:19
поделиться

Да:

  • с использованием Richfaces
  • с использованием JSF 2.0
  • с использованием Primefaces
4
ответ дан 3 December 2019 в 02:19
поделиться

Как насчет этого:

<ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>

<h:commandLink>
  <h:outputText value="Filter List" />
  <f:ajax render="repeater" listener="#{overviewController.filterNew}" />
</h:commandLink>
0
ответ дан 3 December 2019 в 02:19
поделиться
<f:ajax render="repeater">
ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>
<f:ajax />

почему вы обернули его f:ajax? В данном случае это лишнее.

Убедитесь, что ваши компоненты окружены тегом

<h:form>
<ui:repeat id="repeater" value="#{projectData.paginator.list}" var="project">
  <h:outputText value="#{project.title}" />
</ui:repeat>

<h:commandLink action="#{overviewController.filterNew}">
<h:outputText value="Filter List" />
<f:ajax event="click" render="repeater"/>
</h:commandLink>
</h:form>
2
ответ дан 3 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: