الانتقال إلى المحتوى

Refres_after_commit


rabie123

Recommended Posts

السلام عليكم ورحمة الله وبركاته

اريد توضيح هذا الكود

 

    public void refresh_action() {
         FacesContext fc = FacesContext.getCurrentInstance(); 
         String refreshpage = fc.getViewRoot().getViewId(); 
          ViewHandler ViewH = fc.getApplication().getViewHandler(); 
          UIViewRoot UIV = ViewH.createView(fc, refreshpage); 
         UIV.setViewId(refreshpage); fc.setViewRoot(UIV);
     }
 
 
ولما بنفذه على هذا النحو  هذه الرسالة (تم الحفظ) لا تظهر
 
             refresh_action();
        FacesMessage message = new FacesMessage("تم الحفظ");
        FacesContext.getCurrentInstance().addMessage(null, message);     
 
 
وهل هى الافضل  ام     execute    على هذا النحو
 
    public String refresh_det_action() {
        BindingContainer bindings = getBindings();
        OperationBinding operationBinding = bindings.getOperationBinding("Execute1");
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
            return null;
        }
        return null;
    }
 

 

رابط هذا التعليق
شارك

هذه الطريقة    

 

 public void refresh_action() {
         FacesContext fc = FacesContext.getCurrentInstance(); 
         String refreshpage = fc.getViewRoot().getViewId(); 
          ViewHandler ViewH = fc.getApplication().getViewHandler(); 
          UIViewRoot UIV = ViewH.createView(fc, refreshpage); 
         UIV.setViewId(refreshpage); fc.setViewRoot(UIV);
     }
 
 
فيها ميزة انه بيحافظ على ال سجل الحالى   فى شاشة Master_Details
اما execute   بيظهر اول سجل فى ال Masrter
 
المشكلة فى السطر الخاص بالرسائل لا تفعل اى الرسالة لا تظهر   بعد عملية الحفظ بالرغم من انها كتبت بعد سطر ال refresh
 
 وهذا سبب سؤالى عنها   كم اريد معرفىة فكرتها كيف تعمل
رابط هذا التعليق
شارك

 

ولما بنفذه على هذا النحو  هذه الرسالة (تم الحفظ) لا تظهر

 

             refresh_action();

        FacesMessage message = new FacesMessage("تم الحفظ");

        FacesContext.getCurrentInstance().addMessage(null, message);     

 

رابط هذا التعليق
شارك

اولا هذه الجزئيه

public void refresh_action() {

         FacesContext fc = FacesContext.getCurrentInstance(); 
         String refreshpage = fc.getViewRoot().getViewId(); 
          ViewHandler ViewH = fc.getApplication().getViewHandler(); 
          UIViewRoot UIV = ViewH.createView(fc, refreshpage); 
         UIV.setViewId(refreshpage); fc.setViewRoot(UIV);
     }
تقوم بعمل refresh للصفحه وبناء مكوناتها مره اخري
ثانيا هذه الجزئيه
    public String refresh_det_action() {
        BindingContainer bindings = getBindings();
        OperationBinding operationBinding = bindings.getOperationBinding("Execute1");
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
            return null;
        }
        return null;
    }
تستخدم لعمل refresh ل data collection اللي حضرتك مناديها منها
بالتالي عندما تستخدم هذا الكود
refresh_action();
        FacesMessage message = new FacesMessage("تم الحفظ");
        FacesContext.getCurrentInstance().addMessage(null, message)
فهو سوف يقوم بعمل تحديث للصفحه وبناء مكوناتها كانها تفتح للمره الاول دون حدوث اي اكشن عليها بالتالي لن ينفذ الامر

لو حضرتك محتاج تظهر الرساله بعد عمليه ال commit فحضرتك تقدر تحط الكود ده FacesMessage message = new FacesMessage("تم الحفظ");
        FacesContext.getCurrentInstance().addMessage(null, message)
بعد جزء التنفيذ في الميثود كما المثال التالي  :
public String commit_action() {
        BindingContainer bindings = getBindings();
        OperationBinding operationBinding = bindings.getOperationBinding("Commit");
         operationBinding.execute();
FacesMessage message = new FacesMessage("تم الحفظ");
         FacesContext.getCurrentInstance().addMessage(null, message)
            return null;

}

تم تعديل بواسطة Belal Abdalhuk
رابط هذا التعليق
شارك

 

ولما بنفذه على هذا النحو  هذه الرسالة (تم الحفظ) لا تظهر
 
             refresh_action();
        FacesMessage message = new FacesMessage("تم الحفظ");
        FacesContext.getCurrentInstance().addMessage(null, message);     

 

لأن غعادة تحميل الصفحة تقوم بإنشاء الصفحة من جديد

لا تحتاجها ويكفي عمل partialTriggers

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية