منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : معلومة :: WebUserControl
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع محمد الناشـري
قد تحتاج في بعض الاحيان الى تطبيق نفس النموذج أو الأداة على العديد من الصفحات ..
او استغلال هذا العمل في مشاريع اخرى قادمة ..
قد يكون من احد الحلول هو القص واللصق ولكن قد يسبب بعض المشاكل في بعض الأحيان ..
WebUserControl توفر لك ذلك بكل سهولة ..
دعنا في البداية نتعرف عن الفروقات بينها وبين Web Form ..
1- اسم ملف WebUserControl ينتهى ب .ascx
2- في موجه الصفحة WebUserControl تبدا ب <%@ Control
3- ال WebUserControl لاتستطيع العمل بمفردها ولابد من اضافتها الى صفحة Web form .
4- WebUserControl لاتحتوى على عناصر html , body,form ..

إضافة WebUserControl لمشروعك ..
من نافذة Add New Item اختر WebUserControl ضع لها التسمية المناسبة .. ثم موافق ..
ويفضل تنظيم مشروعك بوضع هذة الكنترول في مجلد خاص بها .

تستطيع بعد ذلك وضع ادواتك على WebUserControl ووضع التنسيقات والتحكمات اللازمة ..

وضع WebUserControl على Web Form ...
اذهب الى صفحتك وهي في وضع التصميم ثم اسحب WebUserControl الذي صممتة واسقطة على هذة الصفحة ...
للتاكد من نجاح الربط اذا هب الى ال Sourc
[SIZE=4]
كود :
[/b][/color][/SIZE][/FONT][/SIZE][color=#007700][FONT=monospace]<%@ [/FONT][/color][color=#0000BB][FONT=monospace]Register src[/FONT][/color][color=#007700][FONT=monospace]=[/FONT][/color][color=#DD0000][FONT=monospace]"Control/new.ascx" [/FONT][/color][color=#0000BB][FONT=monospace]tagname[/FONT][/color][color=#007700][FONT=monospace]=[/FONT][/color][color=#DD0000][FONT=monospace]"new" [/FONT][/color][color=#0000BB][FONT=monospace]tagprefix[/FONT][/color][color=#007700][FONT=monospace]=[/FONT][/color][color=#DD0000][FONT=monospace]"uc1" [/FONT][/color][color=#007700][FONT=monospace]%>[/FONT][/color][b]

[SIZE=2][FONT=Times New Roman][SIZE=4][color=black]شغل صفحتك لتختبرها ..

[/SIZE]
هناك طريقتان لإضافة UserControl الى صفحة Web Forms
1 - تصريحياً وهو ما قمنا به في المثا السابق .
2 - برمجياً وهو ما سنتعرف عليه في موضوعنا هذا
الطريقة التصريحية هي الأسهل ولكن الطريقة البرمجية تقدم لك تحكم أفضل وقت التشغيل .
في مثالنا هذا
قمت بإنشاء UserControl جديد اسميته Hello.ascx
وهذة هي الشفرة الخاصة به
كود :
<%@ Control Language="VB" ClassName="Hello" %>
<script runat="server">
Private _name As String = ""
Public Property name() As String
Get


Return _name
End Get


Set(ByVal value As String)
_name = value
End Set
End Property


Public Sub sayHello()
label1.text = "Hello," & _name & "!"
End Sub
</script>
<asp:Label ID="Label1" runat="server" ></asp:Label>

تصرح هذة الشفرة عن متغير نصي يدعى name_ وProperty تدعى Nmae سوف يتم استخدامها لا عداد واستخراج قيمة المتغير name_
وإجراء Sub يدعى sayHello تعد الخاصية Text للاداة Label .

في المثال السابق استخدمنا الموجه Register@ وسنستخدم هنا الموجه Reference@ ..
أنشئ صفحة جديدة في نفس المجلد الذي يوجد به UserContro ( في المثال اسميته Control ) واطلق عليها الاسم DefaultRefernce.aspx مثلاً
لإضافة UserControl لصفحتنا نكتب الشفرة التالية في موجه الصفحة
كود :
[color=#000080]<%@ Page Language=[/color][color=#0000FF]"VB"[/color][COLOR=#000080] %>
[/COLOR][color=#000080]<%@ Reference Control=[/color][color=#0000FF]"~/Control/Hello.ascx"[/color][color=#000080] %>[/color]
يخبر الموجه Reference@ بيئة asp.net أن تربط الـ UserControl مع الصفحة عندما يتم ترجمتها .
لكي تحدد بشكل دقيق أين تريد ان يظهر عنصر التحكم ضع Placeholder في صفحتنا DefaultRefernce.aspx
كالتالي

كود :
[color=#000080]<asp:PlaceHolder ID=[COLOR=#0000ff]"HelloHolder"[/color] runat=[color=#0000ff]"server"[/color]/>[/COLOR]
أخيراً يجب ان نضيف UserControl الى الصفحة ونعد الخاصية Name ونستدعى المنهج SayHello
اضف الشفرة التالية


كود :
<script runat="server">

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myhello As Control = LoadControl("Hello.ascx")
HelloHolder.Controls.Add(myhello)
CType(myhello, Hello).name = "Mohammad"
CType(myhello, Hello).SayHello()
End Sub
</script>
قم باستعراض الصفحة ..
هذة فكرة مبسطة لاستخدام Web User Control اتمنى أن اكون قد أفدتكم ..
يجب أن تفتح المجال لخيالك البرمجي وتفكر كيف تستغل هذة الأداة لتحسين تطبيقك وتوفير الجهد .

المثال في المرفقات