سؤال

أستخدم حاليًا RadTreeView وانتقلت للتو إلى استخدام Load-On-Demand (ServerSideCallback) لتحسين الأداء.في كل عقدة، أستخدم RadContextMenu لفتح RadWindow.في RadWindow، أقوم بتحديث المعلومات حول العقدة التي حددتها في RadTreeView (مثل تغيير اسمها، وما إلى ذلك).عندما أقوم بإغلاق RadWindow، أقوم بتشغيل RadTreeView لإعادة الربط (بما أنني أجريت تغييرات وأريد الحصول على أحدث البيانات).مشكلتي هي أنه عندما أكون على عمق 4 أو 5 مستويات في الشجرة، ليس لدي أي طريقة لإعادة تحديد العقدة التي أتيت منها.كان هذا سهلاً عندما لم أكن أستخدم التحميل عند الطلب نظرًا لأن جميع العقد كانت مجرد جزء من الشجرة.كيف يمكنني القيام بذلك الآن وأنا أستخدم التحميل عند الطلب؟

لقد كتبت بالفعل طريقة للقيام بالعمل في الحصول على جميع معرفات الوالدين التي تؤدي إلى العقدة المعنية.على سبيل المثال، بالنسبة للشجرة المحددة:

A
|__ B
|__ C
|__ D
      |__ E
      |__ F

لنفترض أنه بعد إعادة الربط، أردت العودة إلى "F"، لدي بالفعل طريقة تُرجع "A,B,F"، وهو المسار المؤهل بالكامل للعودة إلى "F".

شكرا يا براين

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

المحلول

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

بدلًا من ذلك، يمكنك العثور على الأصل الأول واستدعاء أسلوب Javascript() الخاص به، ثم في حدث OnClientNodePopulated ابحث عن الأصل التالي واستدعاء أسلوب Expansion() الخاص به وهكذا حتى تصل إلى العقدة المطلوبة.

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