2011-04-05 94 views
0

我的JSF应用程序出现问题。 在页面上有一个表单,用户可以动态地将组件添加到相同的表单。当我使用ajax监听器添加组件时,它会在视图中和模型中进行更新。但是,当我尝试通过按h:actionLink去除dynamiccaly添加的组件时,它的ajax侦听器从不触发。JSF和ajax:动态添加组件的侦听器从来没有用过

这是我的代码:

<h:form rendered="#{schrijvenController.verslagenController.documentSelected}"> 
       <p> 
        <span class="noLabel"> 
         #{bundle.JongereJongere}: 
        </span> 

        <h:selectOneMenu id="jongereSelect" valueChangeListener="#{schrijvenController.selecteerJongere}" immediate="true" 
            value="#{schrijvenController.currentJongere.jongereID}" 
            title="--#{bundle.JongereSelect}--"> 
         <f:selectItems value="#{jongereController.jongerenAsSelectItems}"/> 
        </h:selectOneMenu> 
       </p> 
       <h:panelGroup id="personen"> 
        <ui:repeat value="#{schrijvenController.verslagenController.persoonItems}" var="persoon">        
         <div class="div_add_persoon"> 
          <div class="div_add_persoon_left"> 
           <span class="noLabel"> #{persoon.aanwezigheid}:</span> 

           <h:inputText value="#{persoon.searchTerm}" 
              onkeypress="if (event.keyCode == 13) { onchange(); return false; }"> 
            <f:ajax event="keypress" render="persoonLijst" listener="#{persoon.getPersonenWhereNameLikeSelectItems}" /> 
           </h:inputText> &nbsp; 
           <h:selectOneMenu id="persoonLijst" styleClass="fixedWitdhDropDown" 
               value="#{persoon.currentPersoon.persoon_id}" 
               title="--#{bundle.PersoonSelect}--"> 
            <f:selectItems value="#{persoon.personenWhereNameLikeSelectItems}"/> 
            <f:ajax event="change" render="@form" listener="#{persoon.add}" /> 
           </h:selectOneMenu> 
          </div> 
          <h:panelGroup layout="block" styleClass="div_add_persoon_right"> 
           <ui:repeat value="#{persoon.personen}" var="persoonPersoon"> 
            <h:panelGroup layout="block" styleClass="div_schrijvenPersoon"> 
            <h:outputText value=" #{persoonPersoon.naam} #{persoonPersoon.voornaam} " /> 
            <h:commandLink value="X" id="linkske"> 
             <f:ajax event="click" render="@form" listener="#{persoon.delete}" /> 
            </h:commandLink> 
            </h:panelGroup> 
           </ui:repeat> 
          </h:panelGroup> 
         </div> 
        </ui:repeat> 
        <div class="clear" /> 

这是我的看法的PRT SC: http://i206.photobucket.com/albums/bb69/bartloterman/pscreen.jpg?t=1302028364

如果一个点击从列表中选择元素,它添加到右与一个带有文本“x”的commandLink一起放入div中。但是当我点击“x”链接时没有任何反应(没有功能正在执行)。就好像视图无法找到组件。我正在使用Datamodels。

我一直在寻找一种解决方案在网络上,但我找不到一个。任何帮助将不胜感激。

回答

1

我设法解决通过使用我认为下面的代码问题

<h:commandLink value="X"> 
     <f:ajax render="@form" execute="@form" listener="#{persoon.delete}" /> 
</h:commandLink> 

似乎我需要渲染=“@形式”,并执行=“@形式”

相关问题