2012-06-21 3 views
0

У меня есть следующая часть кода на моей веб-странице. После выполнения метода в action выполняется отображение метки, указывающей, был ли процесс успешным или неудачным.скрыть ярлык после нажатия кнопки richfaces

Я хочу, чтобы метка была скрыта сразу после нажатия кнопки. Как я могу это достичь?

Я думал об использовании actionListener, но я не знаю, если это работает, как: метод

  1. Call ActionListener в
  2. пересборку MyView (очистить мой лейбл)
  3. вызова метода действия в
  4. Повторно визуализировать myView (показать метку, был ли процесс успешным или нет)

Или, может быть, что-то в onclick="getElementById().hide"?

Любые идеи?

Приветствия,

... 
    ... 
    <a4j:commandButton id="btnActualizaCubo" 
         value="Actualizar Cubo" 
         render="messageDependenciaCubo actualizacionCuboLabels @this" 
         onclick="return confirm('Las fechas seleccionadas son correctas?');" 
         onbegin="this.disabled=true; 
         document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='block'" 
         oncomplete="this.disabled=false; 
         document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='none'" 
         action="#{administrationBean.doActualizaCubo}"/> 
    ... 
    <a4j:outputPanel id="actualizacionCuboLabels" style="font-size: 14px; color: #D17100"> 
     <h:outputText rendered="#{administrationBean.actualizacionCuboCorrectaLabelRendered}" 
         value="Actualización correcta !"/> 
     <h:outputText rendered="#{administrationBean.actualizacionCuboFalloLabelRendered}" 
         value="Fallo la actualización !"/> 
    </a4j:outputPanel> 
    ... 

ответ

1

Используйте "OnClick" метод, чтобы скрыть текст с помощью JavaScript. Легкий способ сделать это - обернуть ярлык div и скрыть/показать div в методах onclick/oncomplete соответственно. Кроме того, помните, что генерирует div для выполнения задания, поэтому вам просто нужно получить идентификатор сгенерированный HTML и скрыть/показать его. Я дам вам функции JS, чтобы скрыть/показать DIV (довольно легко, я должен сказать):

<script type="text/javascript"> 
    function ocultaDiv(divId) { 
     document.getElementById(divId).style.display = 'none'; 
    } 

    function muestraDiv(divId) { 
     document.getElementById(divId).style.display = 'block'; 
    } 
</script> 
<a4j:commandButton id="btnActualizaCubo" 
    value="Actualizar Cubo" 
    render="messageDependenciaCubo actualizacionCuboLabels @this" 
    onclick="return confirm('Las fechas seleccionadas son correctas?'); ocultaDiv('myForm:actualizacionCuboLabels');" 
    onbegin="this.disabled=true; document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='block'" 

OnComplete = "this.disabled = ложь; document.getElementById ('formActualizacionCubo: imgProcesandoCubo 'не) .style.display =' ни '; muestraDiv (' MyForm: actualizacionCuboLabels');» action = "# {administrationBean.doActualizaCubo}" />

Помните, что вы не можете отображать свои объекты с помощью серверных вызовов, когда вы можете сделать это с помощью простого JavaScript и сохранить performace. Кроме того, добавьте, если вы используете RF 3.3 или RF 4, чтобы добавить подсказку об этом изображении, которое вы используете как «загрузка, пожалуйста, подождите», что может быть сделано с помощью того, что может даже заморозить всю страницу (нет необходимости отключите свои кнопки и ссылки!).

+0

Спасибо Луиджи. Я попробую то, что вы предлагаете о этикетках. Там есть нить, где я спросил об изображении здесь http://stackoverflow.com/questions/10900860/disable-button-and-show-loading-image-while-processing-jsf – BRabbit27

+0

@ BRabbit27 вы используете JSF 1.2 или JSF 2 ? –

+0

JSF 2.1.6 (Mojarra) – BRabbit27