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

كيفية تبادل البيانات مع ال usercontrol

مغلق
بدأه عود في 16 يوليو 2005 · 4 رد · 644 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أسأل عن كيفية تبادل البيانات بين الUserControl والصفحة التي تحتويه؟

مثل قيم ال public variables و public controls

وشكرا

#2

يمكن أن يعامل ال UserControl على أنه كلاس ضمن ال NameSpace الموجود به

يعني ممكن الوصول لمحتواه عن طريق عمل Instance من هذا الكلاس كالتالي :

 using System;
 using MyProjectName.UserControls; //على فرض ان الكنترولز داخل مجلد فرعي باسم userContols

  Class WebForm : ..........
   {

   private void page_load()
    {
       MyProjectName.UserControls.CtrlName ctrl=new CtrlName();
       // now u can access the user control methods and attributes

   } 

  }

لكن لم تحتاجها ؟؟؟؟

بالعادة نستخدم ال userControls وهي تقوم بما نريده منها من داخلها كي نستطيع أن نجعلها تعمل بشكل مستقل عن الصفحة التي تحويها و بالتالي يمكننا ادراجها بأكثر من صفحة في نفس الوقت.

You can fly while you can touch the sky

#3

الطريقه انك تستخدم Custom Control

و ده بيديك تحكم كامل في البروبيرتز الخاصة بالكنترول و التي تحددها انت من خلال الProperties Window

و هناك ايضا طريقه اخري عن طريق تمرير ال الاشياء بين الجافاسكريبت و الasp.net

و لكني اظن انك تحتاج الي الاولي !

#4

تعقيبا على ما قاله الاخ محمد,الطريقة التي اشار اليها لا تتيح استعمال اليوزر كنترول لانها تستدعي كود الكنترول و تهمل الانترفيس اي ملف الascx :

لذلك هناك طريقتان لاستخدام اليوزر كنترول داخل الصفحة:

الطريقة الاولى ان تعمل Drag and Drop للكنترول داخل الصفحة ثم تاخذ الid الخاص به و تعرف الكنترول في داخل كود السي شارب الخاص بالصفحة مثل:

protected MyProjectName.UserControls.CtrlName ctrl;

private void Page_Load(object sender, System.EventArgs e)
  {
 	 ctrl.MyNiceProperty = "somthing";
 	 ctrl.DoSomething();
  }

الطريقة الثانية هي مناداة دالة LoadControl و اعطائها مسار الكنترول كالتالي:

ثم اضافة الكنترول داخل PlaceHolder مثلا يكون موجودا داخل الصفحة

MyProjectName.UserControls.CtrlName ctrl;
private void Page_Load(object sender, System.EventArgs e)
  {
 	 ctrl = (MyProjectName.UserControls.CtrlName)this.LoadControl("CtrlName.ascx");
 	 ctrl.MyNiceProperty = "somthing";
 	 ctrl.DoSomething();
 	 PlaceHolder1.Controls.Add(ctrl);
  }
#5

السلام عليكم

بارك الله فيكم وجزاكم خيرا

هذا بالفعل ما كنت اريد معرفته

شكرا لكم جميعا أخواني

أدامكم الله لنا

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…