سؤال

أواجه مشكلات مع 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 حتى أتمكن من رؤية تحديث الفول الخاص بي وطباعته بشكل صحيح ، لكن صفحتي لا تحديث وتحقق من كل مربع الاختيار الآخر إذا كنت بحاجة إلى ذلك.

هل كانت مفيدة؟

المحلول

حاول القيام بما يلي:

  1. لا تستخدم valueChangeListener. انقل منطقك إلى setApplyChangesList() طريقة على الفول.
  2. يضيف partialTriggers="changesCheckedBox" إلى اختيار واحد.
  3. أو استبدال <h:panelGrid/> مع مكون ADF وضبط partialTriggers تنسب إليه حتى لا يكون على selectManyCheckbox & outputText

أو

استبدال selectManyCheckbox مع selectManyList & استخدم ال selectAllVisible السمة التي يبدو أنها تفعل ما تريد.

هذه الغش الجديدة رائعة!http://www.oracle.com/technology/products/adf/adffaces/11/doc/cheatsheet/lovs.html

نصائح أخرى

أعلم أن السؤال قديم جدًا ، لكن ربما لا يزال لدى الآخرين هذه المشكلة. من الأفضل وضع partialtrigger على الوالد من بدلاً من الإخراج نفسه. بهذه الطريقة ، يتم إعادة طلاء اللوحة الأم ، مع الإخراج. ثانياً ، من الجيد تعيين حقل "ID" للمكونات التي يجب أن تستجيب للمشغلات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top