الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

load dynamically Webusercontrol in PlaceHolder

مغلق
بدأه kathy في 2 يونيو 2007 · 8 رد · 610 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,,,

لدي مشكلة تتمثل في الاتي لدي صفحة تحتوي على PlaceHolder و button عندما اختار button أقوم بتحميل WebUserControl في PlaceHolder ,

WebUserControl يحتوي على button ,textbox, label المشكلة ان عندما أضغط على button الموجود في WebUserControl لا يحدث شئ ولايذهب الى الحدث ؟؟؟فما هو السبب ؟؟

أرفقت المثال لتوضيح المشكلة

شكرا لكم

LoadControl.rar

#2

انا ما جربت الكود اللي كاتبتيه لكن ربما أنتي استخدمتي Validation controls في الصفحة الرئيسية وبالتالي عند ضغط الزر الموجود بال UserControl يتم تفعيل ال Validators و لا يتم تنفيذ حدث الزر ..

أقول ربما

You can fly while you can touch the sky

#3

شكرا استاذ محمد على الرد

لا لم استخدم Validation controls اعتقد ان المشكلة أنه عند حدوث تحميل لكنترول معين أثناء الرن تايم فإن الصفحة تحتاج لتعريفات معينه حتى تتعرف على الكنترول داخل usercontrol لكنني لم أعرف كيف أقوم بذلك؟؟

#4

المشكلة تكمن في صفحة Default.aspx لأنك تقومين بعمل التالي:

PlaceHolder1.Controls.Add(this.LoadControl("WebUserControl1.ascx"));

داخل حدث الزر .. يعني كأنك تقولين .. عندما اضغط على الزر الأول سوف يتم عرض الأداة و لكن فعليا عندما تقومين بالضغط على الزر في الكنترول الداخلي يتم فقط تحديث ال Page_Load في الصفحة الاولى ولا يتم تفعيل حدث الزر الأول وبالتالي لا يتم عرض الأداة ..

يعني المشكلة في ال

event sequence

الحل:

ممكن تقومي بنقل السطر

PlaceHolder1.Controls.Add(this.LoadControl("WebUserControl1.ascx"));

من حدث الزر و وضعه في الحدث Page_Load دون عمل أي تغيير على الكنترول

ملاحظة: حدث الزر في الصفحة و في الكنترول يحمل نفس الاسم Button1_Click و هذا ليس جيدا و ربما قد تحدث تعارضات لذا يفضل أن تحمل أسماء مختلفة

موفقة

You can fly while you can touch the sky

#5

أستاذي الفاضل : قمت بعمل ماذكرت الإ ان المشكلة مازالت موجودة حيث أن الكنترول يظهر طبيعي ولكن لايذهب لينفذ الحدث button الموجود في usercontrol ??

يمكنك تجريب ذلك في المثال الذي أرفقته

شكرا لك

#6

لقد جربت مثالك .. وكلامك صحيح لكن انا غيرت مكان كود تحميل الاداة كما وضحت لك و قد اشتغلت معي تماما

You can fly while you can touch the sky

#7

طيب إيش الحل لأني محتاجة أقوم بعمل تحميل لحوالي 10 usercontrol بحيث عندما يختار المستخدم button معين يتم تحميل usercontrol الخاص به وكل كنترول من هذة الكنترول يحتوي على كنترول واحداث معينة

كيف سأحل هذة المشكلة ؟؟؟

#8

قومي مثلا في الكنترول الفرعي عند الضغط على زر لانشاء عملية معينة بأن يتم التحويل للصفحة الرئيسية مع تمرير Parameter ..

تأخذي هذا الباراميتر و تقومي بعمل Switch case كما قمت انا بعمل ذلك في Imageglue Application و امام كل حالة يتم تحميل الأداة المطلوبة و هكذا :)

You can fly while you can touch the sky

#9

انا كنت بفكر فعلا كيف طبقت هذا الكلام في Imageglue Application لأني اخذت فكرة تحميل usercontrol أثناء الرن تايم من حضرتك.

ثانيا : أفهم من هذا الكلام أنه لايمكن تعريف usercontrol والوصول لجميع احداثه اثناء الرن تايم بدون ماأستخدم respone.redirect؟؟؟؟ بس انا لما حاولت ابحث عن حل لهذة المشكلة

وجدت من ضمن الحلول أنه يمكن استدعاء دالة تقريبا اسمها page_onint تعمل على تعريف الأحداث لكني لم أعرف ماهى هذة الدالة بالضبط واين يمكن استدعاء هل مثل هذة الدالة موجودة؟

هذا الموضوع مغلق.

مواضيع مشابهة