تحديث محتوى نافذة واحدة على الحدث في نافذة أخرى مع extjs

StackOverflow https://stackoverflow.com/questions/3554860

سؤال

منذ بعض الوقت بدأت أتعلم مكتبة ExtJS والآن أود إنشاء المتابعة:

هناك نافذة متصفح وهي مفصولة عمودي.
على اليسار ، يوجد Treepanel مع الدلائل والمدافع الفرعي (فقط من المستوى العميق).
على الجانب الأيمن سيكون هناك إخراج لمحتوى الدليل الفرعي المحدد.

لقد قمت بجزء الواجهة ، لكنني لا أقوم بتغيير المحتوى على الجانب الأيمن عندما ينقر المستخدم على الدليل الفرعي على الجانب الأيسر. يمكنني تقديم الطلب باستخدام ext.ajax.request ، لكنني لا أعرف كيفية تشغيل تحديث المحتوى للجانب الأيمن.

على فكرة. بينما كنت أتعامل مع الجانب الأيسر هو Treepanel والجانب الأيمن هو Grippanel وهم في منفذ العرض مع Xtype: "لوحة" ، لكنني لا أعتقد أن هذا هو imoptant لهذا السؤال.

أي اقتراحات؟

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

المحلول

أولاً ، تحتاج إلى تسجيل حقيقة أن المستخدم يختار عقدة في Treepanel ، يمكن القيام بذلك عبر:

yourtreepanel.getSelectionModel().on('selectionchange', whattodonext);

حيث "yourtreepanel" هو اسم treepanel الخاص بك (إذا تم تعيين treepanel لمتغير ، وإلا استخدم ext.getcmp ('yourtreepanel'). يختار المستخدم عقدة.

ستبدو وظيفة "whattodonext" مثل هذا:

    function whattodonext(){
        node=yourtreepanel.selModel.selNode;
        if(node){
            if(node.isLeaf()){
// this works out what you want to do if the user has selected a valid leaf node


            }else{
// otherwise...put anything you wish to happen here (i.e. if a folder has been selected)

            }

        }   
    }

الجزء التالي هو تحديث اللوحة إلى اليمين مع المحتوى (إذا كان يسمى "MyContentPanel"). لنفترض أن هذا المحتوى يجب تحميله من "myContent.html" ، في القسم مع

// this works out what you want to do if the user has selected a valid leaf node

سوف تضع الرمز:

mycontentpanel.load({
url: 'mycontent.html',
params: {
yourparam1:'param1value',
yourparam2:'param2value'
},
nocache: true,
timeout: 30
});

وهذا كل شيء!

يمكنك استخدام خيارات Params لإرسال أي معلمات منشور محددة قد تكون لديك والتي ستحدد المحتوى الذي يتم تقديمه.

ولا تنسى ، إذا ركضت إلى الصعوبات ، فحاول الرجوع إلى كائناتك باستخدام ext.getcmp ('ObjectName') بدلاً من مجرد اسم ".

حظا طيبا وفقك الله!

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