سؤال

في مشروع ASP.net AJAX (WebForms)،
لدي UpdatePanel، وفي UpdatePanel لدي عناصر تحكم متداخلة متعددة مع UpdatePanels، ولدي في الأساس أشجار تحكم.يعد التحكم الأبوي جزءًا ضخمًا ومهمًا جدًا من الموقع ولا يمكنني لمسه، (ويُعاد استخدامه أيضًا في العديد من الأماكن)، ويجب أن تظل لوحة التحديث في وضعها الحالي.

تحتوي عناصر التحكم الفرعية في لوحة التحديث على وظائف منفصلة عن بعضها البعض (يتم فصلها أيضًا عن طريق UpdatePanel)، لتتمكن من تحديث جزء فقط من عنصر التحكم.
بشكل أساسي في Page_Load() لدي تعليمات برمجية تملأ كل عنصر تحكم تابع بالبيانات، على سبيل المثال إذا كانت لدي وظيفة حذف تقوم بتعديل بيانات عناصر التحكم التابعة. الخطوات هي كما يلي:

يظهر أولاً عنصر التحكم (ParentControl).

  • Page_Load() -> ملء البيانات

إذا قمت بالنقر فوق حذف:

  • Page_Load() -> ملء البيانات   /* لا أريد استدعاء هذا هنا!*/

  • حدث الحذف -> تعديل البيانات

         ->fullfill data again!
    

أحتاج إلى إحداث فرق برمجي AsyncPostbacksواستخدم الدالة Page_Load() لعدم استدعاء بيانات التعبئة الكاملة عندما تريد فقط تنفيذ حدث ما.

خارج UpdatePanel يمكنك استخدامه IsAsyncPostback,IsCallBack,IsPostback أنا أعرف هذا بالتأكيد، ولكن هذه لا تتغير الخصائص على AsyncPostback.

لدي 2 AsycPostbacks وأحتاج إلى التمييز بينهما.
1.أولاً هذا فقط عرض البيانات والتهيئة.
2.تنفيذ حدث وإجراء تعديلات على السيطرة

هل يعرف شخص ما تقنية يجب تنفيذها، أو نوع من إطار العمل الذي يتمتع بهذا النوع من الوظائف؟

هل لدى أي شخص هذه المشكلة؟:(

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

المحلول

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

سيتعين عليك التحقق إما من الأحداث التي تسببت في معاودة الاتصال غير المتزامنة، أو التحقق من بعض قيمة عناصر التحكم في كل لوحة من لوحات التحديث لمساعدتك في معرفة ما تم تغييره.

هذا هو أحد الأسباب الرئيسية التي جعلتني أقرر عدم استخدام لوحات التحديث، حيث تتسبب عملية النشر غير المتزامنة في حدوث جميع أحداث دورة حياة الصفحة تقريبًا، وتجعل من الصعب جدًا رؤية ما يحدث فعليًا في المواقف المعقدة مثل هذه - المرة الوحيدة التي استخدمت فيها لوحة التحديث في حالة غضب كانت على موقعي الشخصي للالتفاف حول شبكة البيانات لحفظ إعادة تحميل الصفحة بأكملها عند العمل مع مجموعات كبيرة من البيانات.


تعديل للإضافة:

مجرد محاولة للمساعدة، ظهرت جوجل سريعة هذا (AJAX وASP.NET 2.0 Callback Framework):

ما عنصر التحكم الذي بدأ الطلب؟

في طلب إعادة النشر، يعمل معرف ScriptManager كمعلمة.بشكل عام، القيمة هي معرف عنصر التحكم الذي بدأ عملية إعادة النشر الجزئية.وهو بصيغة |.يمكن لعناصر التحكم التسجيل في ScriptManager مباشرة أو عبر UpdatePanel.ستقوم الخاصية ScriptManager.AsyncPostBackSourceElementID بإرجاع معرف عنصر التحكم الذي بدأ عملية إعادة النشر الجزئية.

مثال على بناء الجملة:

ScriptManager1=UpdatePanel1|Button1

تتناول هذه الصفحة أيضًا بعض التفاصيل حول دورة الحياة والربطات المختلفة في العملية.

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