السلام عليكم
أسأل عن كيفية تبادل البيانات بين الUserControl والصفحة التي تحتويه؟
مثل قيم ال public variables و public controls
وشكرا
السلام عليكم
أسأل عن كيفية تبادل البيانات بين الUserControl والصفحة التي تحتويه؟
مثل قيم ال public variables و public controls
وشكرا
يمكن أن يعامل ال 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
الطريقه انك تستخدم Custom Control
و ده بيديك تحكم كامل في البروبيرتز الخاصة بالكنترول و التي تحددها انت من خلال الProperties Window
و هناك ايضا طريقه اخري عن طريق تمرير ال الاشياء بين الجافاسكريبت و الasp.net
و لكني اظن انك تحتاج الي الاولي !
تعقيبا على ما قاله الاخ محمد,الطريقة التي اشار اليها لا تتيح استعمال اليوزر كنترول لانها تستدعي كود الكنترول و تهمل الانترفيس اي ملف ال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);
}السلام عليكم
بارك الله فيكم وجزاكم خيرا
هذا بالفعل ما كنت اريد معرفته
شكرا لكم جميعا أخواني
أدامكم الله لنا
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…