عمل Disable لكل components على الصفحة بـ ADF بضغطة زر
Disable for All Components that is on page by one click in ADF
نتبع
الخطوات التالية :
1-
إنشاء صفحة مع manage bean بالطريقة المعتاد عليها
2-
نضع أحد أنواعlayout component (panelFormLayout أو panel grid layout)
لتضم بداخلها الـ component المراد عملها لها Disable هنا إستخدمت panelFormLayout إذن الـ Id التابع لها سيكون Pfl1 ومعرفة هذا الأمر ضرورية لإننا سوف نستخدمه
ونتعامل معه داخل الكود كما سنرى
3-
بالسحب والإفلات (Drag & Drop) نضع
عدد من الـ component
المختلفة
(inpt text, selectBooleanRadio, selectManyChoice, selectBooleanRadio)
1-
الآن لكل component موجود على الصفحة ضبط خاصية autoSubmit له بـ
true وخاصية partialTriggers بـ Id التابع للـ Button (الإسم البرمجي للـ Button) هنا
أنا عندي Id التابع للـ Button هو cb1 معناه أن هذه الـ component ستتأثر بـ ضغطة هذا الـ
Button
2-
الأن double click على button نعمل method وليكن إسمها disableAction()
والتي ستكون داخل الـ manage bean الصفحة لنكتب الكود التالي :
public String disableAction()
{
for (UIComponent child : getPfl1().getChildren())
{
if (child instanceof RichInputText)
{
((RichInputText)child).setDisabled(true);
}
if (child instanceof RichInputText)
{
((RichInputText)child).setDisabled(true);
}
else if (child instanceof RichSelectBooleanCheckbox)
{
((RichSelectBooleanCheckbox)child).setDisabled(true);
}
else if (child instanceof RichSelectBooleanRadio)
{
((RichSelectBooleanRadio)child).setDisabled(true);
}
else if (child instanceof RichSelectManyChoice)
{
((RichSelectManyChoice)child).setDisabled(true);
}
}
return null;
}
3-
مختصر الكود أنه نلاحظ أنه
يتم التحقق من كل نوع components موجود داخل الـ panelFormLayout (Pfl1) وضبط خاصية Disabled له بـ true
4- الآن نعمل
run
للصفحة لنرى النتيجة كما
في الصورة التالية :
ليست هناك تعليقات:
إرسال تعليق