سؤال

لست على دراية بـ ExtJs ، لكنني أعمل على مشروع يستخدمه.

نحن نستخدم treepanel مع treeloader يقوم بتحميل جميع بيانات العقدة من الخادم في مكالمة واحدة. لدينا حدث أحتاج فيه للوصول إلى سمات كل عقدة في الشجرة. الطريقة التي أقوم بها هي استخدام طريقة getNodebyId من TreePanel. تكمن المشكلة في أن لوحة الشجرة يبدو أنها تحميل بتكاسل ولن تتمكن من استرداد عقدة باستخدام getNodeById ما لم يتم بالفعل تحميل العقدة.

هل هناك أي طريقة لإجبار جميع العقد على تحميلها؟ الأقرب الذي جئت فيه هو استخدام سمة preloadchildren على treeloader ، ولكن هذا لا يزال يتم تحميله فقط عندما يتم تحميل العقدة الأم التي تحتوي على الأطفال.

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

المحلول

إذا كنت تريد أن تكون قادرًا على الوصول إلى جميع العقد ، فيجب عليك تحميل بنية الشجرة الكاملة في المكالمة الأولى.

يجب أن تتضمن استجابة JSON على المكالمة الأولى جميع العقد الشجرة. علي سبيل المثال:

[{
    id: 1,
    text: 'A leaf Node',
    leaf: true
},{
    id: 2,
    text: 'A folder Node',
    children: [{
        id: 3,
        text: 'A child Node',
        leaf: true
    }]

}]

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