2013-02-12 2 views
1
   <h:form id="myform"> 
        <h:panelGrid columns="1" cellpadding="10"> 
         <p:selectOneMenu id="suburbs" value="#{cityBean.cityName}" style="width: 200px" > 
          <f:selectItems value="#{cityBean.cityNames}" style="width: 200px"/> 
          <p:ajax update="@form" 
            listener="#{cityBean.handleCityChange}" /> 
         </p:selectOneMenu> 

         <p:dataTable style="padding: 20px" value="#{cityBean.getSchoolList()}" var="school" id="schools" > 
          <f:facet name="header"> 
           Okullar 
          </f:facet> 
          <p:column> 
           <p:commandLink async="false" process="@all" value="#{school.schoolName}" update=":tabv" title="View Detail" action="#{cityBean.schoolAction(school.schoolId)}"/> 
          </p:column> 
          <br></br> 
          <br></br> 
         </p:dataTable> 

        </h:panelGrid> 
       </h:form> 

Когда открывается первая страница, есть 3 школы в информаторе и все эти три ссылки ara работают. Когда я выбираю другой город, в котором есть 5 школ, работают только три ссылки, два не работают. Есть ли решение этой проблемы?Commandlink внутри dataList не работает

+0

Возможно, вы имеете в виду process = "@ this", а не process = "@ all" – Darka

ответ

1

У вас отсутствует атрибут rowKey от < p:dataTable>, поэтому я предполагаю, что вы используете более раннюю версию PrimeFaces, такую ​​как версия 2.2.

Известны ошибки со старыми версиями перьев, где события ajax, вызванные изнутри dataTable, не будут правильно обновлять содержимое страницы.

http://blog.primefaces.org/?p=2119

Однако более фундаментально проблема может быть просто проще:

<p:commandLink ... update=":tabv" ... /> 

У вас есть этот commandLink компонент обновляет идентификатор, который вы никогда не предоставленный код для. Было бы невозможно сказать, нет ли здесь чего-то другого. Тем временем я предлагаю вам попробовать использовать Javascript для вызова события click в commandLink или commandButton за пределами dataTable, чтобы узнать, разрешает ли это ваши проблемы. Если нет, вам следует рассмотреть возможность перехода на новую версию PrimeFaces.

0

Я столкнулся с той же проблемой, используя dataList. Это помогло:

<p:dataList type="definition"... 
    <f:facet name="description"> 
    ...