У меня есть специальная строка в моей таблице для ошибок:
<tr>
<td colspan="2"><p:message for="questionId" id="msgQuestion" /></td>
</tr>
Как я могу установить это так, чтобы строка отображалась только при наличии ошибки?
У меня есть специальная строка в моей таблице для ошибок:
<tr>
<td colspan="2"><p:message for="questionId" id="msgQuestion" /></td>
</tr>
Как я могу установить это так, чтобы строка отображалась только при наличии ошибки?
Во-первых, я рекомендую не использовать таблицу для отображения элементов макета
после этого элемент появится, даже если сообщение отсутствует, если вы обязаны его использовать, вы можете использовать такой подход в JS:
<script type="text/javascript">
window.onload = function() {
hideTdMessage();
};
hideTdMessage(){
var message = document.getElementById(msgQuestion);
if(message){
//the msg is present
}else{
//the msg is not present
}}
</script>
Или вы можете использовать свой MBean для изменения класса CSS, это лучше, чем использование JS.
Но я скажу, что лучшее решение - не использовать таблицу.
Надеюсь, это помогло
Используйте компонент JSF и отображаемое свойство
rendered="#{not empty facesContext.messageList}"
<h:dataTable>
), ни компонентом PrimeFaces (например,<p:dataTable>
)? - person Tiny   schedule 01.07.2015<tr>
не завернуты внутрь<c:forEach>
и/или<ui:repeat>
итерирующих компонентов), то того же можно добиться, используя компонент, подобный<p:panelGrid>
, и условный рендеринг<p:row rendered="#{someCriteria}" ...>
внутри него. - person Tiny   schedule 01.07.2015