私の要件は、ユーザーが選択した製品に応じてウィザードを表示することです (ドロップダウンを使用)。そのため、p:outpanel 内にいくつかのステップを含む ap:wizard コンポーネントを使用しています (autoupdate が true の場合)。これが最初にレンダリングされると、すべてが正常に見えます。つまり、すべてのタブとナビゲーション ボタンが適切に表示されます。しかし、次のボタンをクリックすると、ナビゲーション ボタンとヘッダーのタブが消えます。このバグを確認するために私が作成したサンプル コードとスクリーンショットを PFB に示します。
<p:panel style="height: 100px;width:500px">
<p:outputPanel autoUpdate="true">
<p:wizard>
<p:tab id="tab1" title="Tab 1">
Sample Tab 1
</p:tab>
<p:tab id="tab2" title="Tab 2">
Sample Tab 2</p:tab>
<p:tab id="tab3" title="Tab 3">
Sample Tab 3</p:tab>
</p:wizard>
</p:outputPanel>
</p:panel>
手動更新では、データ テーブル内のデータが更新されません。私はかなりめちゃくちゃな要件を持っています。データテーブルと 2 つのコマンド ボタン、つまりdeleteとupdate detailsがあるフォームがあります。削除をクリックすると、選択したレコードがデータテーブルから削除される必要があります (DB は更新されますが、UI は更新されません)。また、[詳細の更新] をクリックすると、選択したレコードに関する詳細を含むデータ テーブルの下にウィザードが表示されます。ユーザーはデータ テーブルから別のレコードを選択できる必要があり、ウィザードは適切なデータで更新される必要があります。
今、私は複数の問題に直面していますが、
- 削除ボタンをajaxにすると、データテーブルは更新されません(outputpanelを使用したり、完全なフォームを更新したりせずに)。
- 出力パネルを使用すると、UI がフィルタリングまたはソートでめちゃくちゃになります (viewstate が復元されないため)。
- データテーブル用とウィザード用に別々のフォームを作成し、「詳細の更新」ボタンからウィザードのデータを更新してみます。また、ウィザード データが更新されません。
- 次に出力パネルを使用すると、WIzard UI が [次へ] をクリックするとめちゃくちゃになります (viewstate が復元されないため)。
PFB シナリオのダミー コード:
<h:form id="form1">
<p:outputpanel id="panel1">
<p:datatable value="#{someBeanMethod}" var="someData">
//Some data Table columns
<f:facet name="footer">
<p:commandbutton id="button1" value="delete"
actionListner="#{deletFuntion}" update="@(form1:panel1)"/>
<p:commandbutton id="button2" value="viewDetails"
actionListner="#{fetchViewMethod}" update="@(form1:panel2)"/>
</f:facet>
</p:datatable>
</p:outputpanel>
<p:outputpanel id="panel2">
<p:wizard id="wizard1" rendered = "#{someFlag}">
//Some Functionality
</p:wizard>
</p:outputpanel>
</h:form>