بتاريخ: 4 ديسمبر 201114 سنة comment_218242 السلام عليكمأنا عندي showDetailHeader وهو يتضمن جدول معين من قاعدة البيانات والمطلوب:أريد أنه عندما أقوم بفتح showDetailHeader أن تكون خاصية text التابعة لها تحتوي عبارة ثابتة وعندما أقوم بإغلاق showDetailHeader أن تصبح قيمة text هي قيمة بيانات أحد حقول الجدول الموجود فيه ووفق السطر الذي تم الوقوف عليه.علما أنني استخدمت الحدث DisclosureListener وربطته مع managed Bean public void changeText(DisclosureEvent disclosureEvent) { if (disclosureEvent.isExpanded()) { System.out.println("Expanded"); } else { System.out.println("Colapsed"); } }وهو يعمل بشكل صحيح ولكن ما هو الكود الخاص بجلب قيمة بيانات السطر من الجدول المتضمن فيهوماهو الكود الخاص بتغيير قيمة الخاصية text ضمن showDetailHeader مع الشكر سلفا تقديم بلاغ
بتاريخ: 4 ديسمبر 201114 سنة comment_218247 اربط الخاصية بقيمة متغير وداخل الكود قم بتغيير قيمة هذا المتغير بما تريد تقديم بلاغ
بتاريخ: 5 ديسمبر 201114 سنة كاتب الموضوع comment_218276 اربط الخاصية بقيمة متغير وداخل الكود قم بتغيير قيمة هذا المتغير بما تريد مشكور أخ مصطفى فقد عملت ذلك ونجحت عملية تغيير حقل text الخاص بـ showDetailHeader ولكني لم أستطع جلب بيانات العمود الأول من الجدول الموجود ضمن الـ showDetailHeader علما أنني استطعت جلب قيم الكثير من الخصائص للجدول والعمود ولكن خاصية value ترفع exception وأعتقد أن السبب هو أنها تتضمن قيم متغيرة من قاعدة البيانات <af:inputText value="#{row.bindings.Description.inputValue}" أرجو المساعدة وهذا هو الكود: [/left] [left] public void changeText(DisclosureEvent disclosureEvent) { if (disclosureEvent.isExpanded()) { detailHeaderText = "Expanded"; } else { detailHeaderText = "Colapsed"; List<UIComponent> children = disclosureEvent.getComponent().getChildren(); for (UIComponent child : children) { if (child instanceof RichTable || child instanceof RichPanelCollection) { RichTable myTable; if (child instanceof RichPanelCollection) myTable = (RichTable)child.getChildren().get(0); else myTable = (RichTable)child; // this line print all row data System.out.println("getSelectedRowData()"+myTable.getSelectedRowData().toString()); RichColumn myColumn = (RichColumn)myTable.getChildren().get(0); RichInputText myInputText = (RichInputText)myColumn.getChildren().get(0); //this line print the label System.out.println("getLabel()="+myInputText.getLabel()); //this line raise java.lang.NullPointerException System.out.println("getValue()="+myInputText.getValue().toString()); break; } } }[/left] [left] مع الشكر تم تعديل 5 ديسمبر 201114 سنة بواسطة mhawad تقديم بلاغ
بتاريخ: 8 ديسمبر 201114 سنة كاتب الموضوع comment_218370 لقد اكتشفت الحل وهو في الكود التالي: public void changeText(DisclosureEvent disclosureEvent) { if (disclosureEvent.isExpanded()) { _detailHeaderText = ""; } else { DCBindingContainer dcbc = ADFUtils.getDCBindingContainer(); Row row = dcbc.findIteratorBinding(getIterName()).getCurrentRow(); if (row != null) { _detailHeaderText = row.getAttribute("Description").toString(); } } } أرجو أن تعم الفائدة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.