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 つの学校があり、これら 3 つのリンクすべてが機能しています。5 つの学校がある別の都市を選択すると、3 つのリンクのみが機能し、2 つのリンクは機能していません。この問題の解決策はありますか?

4

2 に答える 2

1

rowKey<コンポーネントの属性が欠落しているp:dataTable>ため、バージョン 2.2 などの以前のバージョンの PrimeFaces を使用していると想定しています。

dataTable 内から呼び出された ajax イベントがページのコンテンツを適切に更新しないという、以前のバージョンの primefaces に関する既知のバグがありました。

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

ただし、より根本的な問題は、それよりも単純な場合があります。

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

コードを提供したことのない id を更新するこの commandLink コンポーネントがあります。ここで他に何か問題がなければ、言うことは不可能です。それまでの間、JavaScript を使用して、dataTable の外側の commandLink または commandButton でクリック イベントを呼び出して、問題が解決するかどうかを確認することをお勧めします。そうでない場合は、PrimeFaces の新しいバージョンへのアップグレードを検討する必要があります。

于 2013-02-12T13:45:32.970 に答える
-1

dataList を使用して同じ問題が発生しました。これは役に立ちました:

<p:dataList type="definition"...
    <f:facet name="description">
    ...
于 2014-02-07T14:23:59.110 に答える