2014-10-07 3 views
0

У меня есть запрос ajax, который выводит мне dataTable и формирует каждую строку. Я также хочу запустить кнопку. При этом не запускается какое-либо событие, и я думаю, что это потому, что вторая кнопка находится на другом уровне, чем первая кнопка поиска. JSF выглядит примерно так:JSF Ajax CommandButton на другом уровне

<h:from> 
    <h:inputText id="search" 
       value="#{profileController.searchName}"/> 
    <h:commandButton value="Search by name" 
        action="#{profileController.searchProfileWithName(profileController.searchName)}"> 
     <f:ajax execute="search" 
       render="output"> 
     </f:ajax> 
    </h:commandButton> 

    <h:dataTable id="output" 
       value="#{profileController.searchResultList}" 
       var="p"> 
       <h:column> 
        <f:facet name="header">Name</f:facet> 
        <h:outputText value="#{p.name}"/> 
       </h:column> 
       <h:column> 
        <f:facet name="header">Action</f:facet> 
        <h:commandButton value="Invite" 
            action="#{trainingController.inviteProfile(p)}"> 
           <f:ajax/> 
        </h:commandButton> 
       </h:column> 
    </h:dataTable 
</h:form> 

JSF Managed Bean (requestScoped):

public String searchProfileWithName(String name) { 
    searchResultList = profileBean.findProfilesWithName(name); 
    return null; 
} 

ProfileBean (лица без гражданства):

public List<Profile> findProfilesWithName(String name) { 
    Query query = em.createNamedQuery("findProfilesWithName"); 
    query.setParameter("name", "%" + name.replace(" ", "%") + "%"); 
    return query.getResultList(); 
} 

Любой идеи в этом?

+0

Вы проверили http://stackoverflow.com/questions/2118656/commandlink-commandbutton-backing-bean-action-method-not-invoked/2120183#2120183 ? – Smutje

+0

да, я проверил его. Не помогает мне – perotom

+0

Почему вы проходите «trainingController.currentTraining» через EL, если 'currentTraining'is уже находится в бэкэнде? Почему бы просто не использовать его из бэк-бэка и передать 'p' только ?. Вы также должны опубликовать свой бэкбон здесь, чтобы показать, как вы заполняете этот список. * Что-то * из списка @Smutje опубликовано должно быть применимо к вам. В этой статье рассматривается все возможное. – kolossus

ответ

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