2013-02-21 2 views
0

моя таблица данныхПерезагрузка JSF DataTable с помощью JQuery

<h:form> 
    <h:dataTable value="#{testController.items}" var="item" border="0"> 
     <h:column> 
      <h:outputText value="#{item.name}"/> 
     </h:column>   
    </h:dataTable> 
</h:form> 

я использую режимные держать свою форму, модальный содержит этот CommandButton

<p:commandButton styleclass="btn btn-primary" action="#{testController.create}" oncomplete="handleComplete(xhr, status, args)" /> 

функции handleComplete:

function handleComplete(xhr, status, args) { 
    if(args.validationFailed) { 
     alert("failed"); 
    }else{ 
     $('#test-modal').modal('hide'); 

      // Do something here to reload the datatable to add the newly created item 

    } 
} 

im Использование jsf 2 и i также импортированных поверхностей

+0

Является 'commandButton' также в этом' form' вместе с 'dataTable'? – partlov

ответ

0

Вы можете использовать <p:remoteCommand> для генерации функции JavaScript, которая вызывает действие команды JSF.

<h:form> 
    <h:dataTable id="table" value="#{testController.items}" var="item" border="0"> 
     <h:column> 
      <h:outputText value="#{item.name}"/> 
     </h:column>   
    </h:dataTable> 
    <p:remoteCommand name="updateTable" action="#{testController.update}" update="table" /> 
</h:form> 

Это может быть вызван следующим образом:

function handleComplete(xhr, status, args) { 
    if (args.validationFailed) { 
     alert("failed"); 
    } else { 
     $('#test-modal').modal('hide'); 
     updateTable(); 
    } 
} 
+0

привет, я попробовал то, что вы предложили, но кажется, что действие не вызывается, я попробовал отладку и добавил sysout в этот метод, но кажется, что он не вызывает его. – galao

Смежные вопросы