Как я могу показать / скрыть столбец с данными JSF с помощью AJAX? - PullRequest
4 голосов
/ 23 мая 2011

У меня есть вызов ajax, который обновляет следующую таблицу.Можно ли скрыть столбец «Оценка» (это BigDecimal), если все значения равны нулю, в противном случае он должен отображаться?

<h:dataTable id="theTable" value="#{MyBean.people}" var="person">
  <h:column>
    <f:facet name="header">
      <h:outputText value="Name" />
    </f:facet>
    #{person.name}
  </h:column> 
  <h:column rendered="#{person.score != null}">
    <f:facet name="header">
      <h:outputText value="The Score" />
    </f:facet>
    #{person.score}
  </h:column> 
</h:dataTable>

Текущий рендеринг всегда делает столбец НЕ рендерингом, даже если оценки не равны нулю.

1 Ответ

5 голосов
/ 23 мая 2011

Нет «легкого» способа сделать это, вы должны посмотреть всю коллекцию самостоятельно. Вы можете написать вспомогательный метод, который проверяет ваш список на нулевые значения:

public boolean isAllScoresNull() {
    for(Person p : people) {
        if(p.getScore != null) return false;
    }
    return true;
}

и используйте это через EL на своей странице:

...
<h:column rendered="#{myBeanController.allScoresNull}">
...

Вы также можете определить TagFunction для этой задачи.

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