لا يمكن لـ JSF/ADF/PPR تحديث الصفحة كما هو متوقع
-
22-09-2019 - |
سؤال
أواجه مشكلات مع JSF/ADF/PPR على تحديث الصفحة بشكل غير صحيح. لديّ SelectanyCheckbox مع 5 خيارات فيه ، أحد الخيارات هو "الكل". إذا تحقق المستخدمون من خانة الاختيار ، فيجب أن أتحقق من جميع الآخرين.
<h:panelGrid styleClass="myBox leftAligned" id="applyChangesBox">
<af:selectManyCheckbox id="changesCheckedBox"
autoSubmit="true" label="Hello: "
value="#{updateForm.applyChangesList}"
valueChangeListener="#{updateForm.testValueChanged}">
<af:selectItem value="A" label="All Changes"/>
<af:selectItem value="R" label="Residential Address"/>
<af:selectItem value="M" label="Mailing Address"/>
<af:selectItem value="P" label="Personal Phone/Fax Numbers"/>
<af:selectItem value="E" label="Personal Email Addresses"/>
</af:selectManyCheckbox>
<af:outputText value="#{updateForm.testValue}" partialTriggers="changesCheckedBox"/>
</h:panelGrid>
أنا أستخدم Valuechangelistener حتى أتمكن من رؤية تحديث الفول الخاص بي وطباعته بشكل صحيح ، لكن صفحتي لا تحديث وتحقق من كل مربع الاختيار الآخر إذا كنت بحاجة إلى ذلك.
المحلول
حاول القيام بما يلي:
- لا تستخدم
valueChangeListener
. انقل منطقك إلىsetApplyChangesList()
طريقة على الفول. - يضيف
partialTriggers="changesCheckedBox"
إلى اختيار واحد. - أو استبدال
<h:panelGrid/>
مع مكون ADF وضبطpartialTriggers
تنسب إليه حتى لا يكون علىselectManyCheckbox
&outputText
أو
استبدال selectManyCheckbox
مع selectManyList
& استخدم ال selectAllVisible
السمة التي يبدو أنها تفعل ما تريد.
هذه الغش الجديدة رائعة!http://www.oracle.com/technology/products/adf/adffaces/11/doc/cheatsheet/lovs.html
نصائح أخرى
أعلم أن السؤال قديم جدًا ، لكن ربما لا يزال لدى الآخرين هذه المشكلة. من الأفضل وضع partialtrigger على الوالد من بدلاً من الإخراج نفسه. بهذه الطريقة ، يتم إعادة طلاء اللوحة الأم ، مع الإخراج. ثانياً ، من الجيد تعيين حقل "ID" للمكونات التي يجب أن تستجيب للمشغلات.