السلام عليكم
أمل أن تكونوا قد تمعنتم بالجزء الأول لأن اليوم حديثنا سيطول
سأتكلم اليوم إن شاء الله عن بعض الأساسيات والامكانيات البرمجية للفيجوال بيسك
لنفتح الدرس السابق ( الجزء الأول ) ونتابع
وكما كنا قد فعلنا
الكود التالي
كود:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(RadioButtonList1.SelectedItem.Text. ToString)
End Sub
وهنا دعونا نقول ما هي ريسبونس
بيئة الASP.NET2 وكما قلت كانت بالأساس بدون دوت نت ( الكلاسيكية ) وأخذت الكثير من الأشياء منها ومنها
ريسبونس
بيئة ال ASP.NET2 تتكون من حسب ما أفتكر 8 كائنات أساسية
وهي
Response
Request
Server
Session
Trace
User
Application
Cash
Response
وكما قلت باختصار سابقا وسأكرر
هي بمثابة البيانات المرسلة من الخادم للمتصفح
حيث من ضمن الطرق التي يحتويها إجراء يسمى ب write()
وبالامكان كتابة نصوص عادية أو حتى كتابة نصوص هتمل
جرب مثلا أن تكتب "<br>"
وأيضا وهنالك الطريقة redirect والتي نقوم بطلب صفحة من السيرفر
مثلا إذا كان موقعنا يحتوي على عشر صفحات ونريد عند النقر على الزر أن يتم تحويلنا لصفحة رقم 6 فكل ما علينا
عمله في حدث النقر على الزر هو كتابة التالي
Response.redirct("PageName.aspx")
لنعود الآن للكود
الكود بسيط
اكتب . القائمة . العنصر المنتقى . نص العنصر . إلى نص ( عادي بدونها أيضا)
ماذا لو أردنا أن يكتب أنت اخترت الخيار و ( اسم الخيار )
طبعا راح تقول راح نكتب جملتين كالتالي
كود:
Response.Write("أنت اخترت الخيار")
Response.Write("<br>")
Response.Write("RadioButtonList1.SelectedItem.Text.ToString")
ولكن هذا ليس منطق كلما نريد أن نكتب أكثر من جملة سواء هنا أو في أداة عنوان .
الفيجوال بيسك مثل أية لغة برمجية به إمكانيات عديدة
لنجرب الكود التالي
كود:
كود:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write("أنت اخترت " & RadioButtonList1.SelectedItem.Text.ToString)
End Sub
الكود بسيط جدا وقد قمنا بربط الجملتين بالحرف & بكل بساطة وبامكانك أن تضيف عدد لا نهائي من الربط
الحرف & يربطك بين متغيرين من نوع string وهي المتغيرات الحرفية طبعا يمكن إعادة قيادتها كما تشاء ولكن هذا
ليس موضوعنا
لنقم بجعل الكود داخل الزر تعليق ( )
ما هي التعليقات
هي ملاحظات وجمل يكتبها المبرمج لنفسه حتى يتذكر أمر ما أو حتى ليشرح الكود للبعض
فمثلا قد تحتاج إلى أن تبين الهدف من سطر معين في الكود فكل ما عليك هو التحويل للغة الإنجليزية والضغط على
حرف الطاء من الكيبورد قبل السطر مع العلم انه يتحتم عليك أن تضع قبل كل سطر بدء تعليق
والرمز هو
'
ماذا لو أردنا أن يخرج لنا على الصفحة رقم الخيار
الطريق بسيطة وهي عن طريق الخاصية SelectedIndex كالتالي ( الترقيم بيبدا من الرقم 0 وليس من الرقم 1)
أو إذا حدا مركز معي بيفتكر إنه أعطينا القيم أرقام نفس ترقيم الاندكس يعني يمكن كتابة الكود التالي أيضا
Response.Write(RadioButtonList1.SelectedValue)
Response.Write(RadioButtonList1.SelectedIndex)
طبعا راح نلاقي إنه الترقيم من صفر يعني الخيار الخامس بيكون رقمه 4
طيب والعمل
المطلوب أن يكتب 5 بدلا من 4
الحل بسيط وكما قلت الفيجوال بيسك هنا يعطيك كل الإمكانيات يجب أن تعرفوا أن القيمة هنا في الفاليو أو الإندكس
يتعامل معاها كأنها رقم
يعني لو اخترنا الخيار الثالث فإن هذه الجملة بيفهمها RadioButtonList1.SelectedIndex كإنها رقم 2
وبالتالي بامكانك التعامل معاها كأنها رقم يعني بامكانك أن تضرب وتجمع
جرب التالي
Response.Write(RadioButtonList1.SelectedIndex + 1)
راح تلاقي سيكتب لك 5 إذا اخترت الخيار الخامس
جرب تضيف 2 أو تضرب ب 2 أو تطرح على 10 كل العمليات الحسابية جائزة
أكيد لمستخدمي الفيجوال بيسك هذا كلام عادي .
ماذا لو أردنا من البرنامج يكتب لنا التالي
أنت اخترت JSP
هذا الخيار رقم 4
ويكررها حسب رقم الخيار
هنا سنطر إلى استخدام جملة التكرار الشائعة
لنشرح جملة التكرار
كود:
For i = 0 To 10 Step 1
Next
جملة الشرط تبدا ب for وتنتهي ب next
وما نريد تنفيذه يكون بينهما
يتوجب وجود متغير لتبدأ العد منه ولتعريف متغير ( أفضل قراءة كتاب الأخ تركي بخصوص برمجة الفيجوال بيسك
دوت نت )
وباختصار اكتب dim I as integer حيث I اسم المتغير وانتجر نوعه وهنا نوعه عدد صحيح
في الكود بالأعلى 0 هي القيمة الابتدائية و10 هي القيمة النهائية للتكرار والرقم 1 هو عدد مرات الزيادة
وهي اختيارية وبدونها الزيادة سكتكون واحد
الآن لنكتب الكود التالي
كود:
Protected Sub RadioButtonList1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
RadioButtonList1.Load
Dim i As Byte
For i = 1 To RadioButtonList1.SelectedIndex + 1 Step 1
Response.Write("أنت اخترت " & RadioButtonList1.SelectedItem.Text.ToString & "<br>" & "هذا الخيار رقم
" & RadioButtonList1.SelectedIndex.ToString + 1 & "<br>" & "<br>")
Next
End Sub
كما قلت RadioButtonList1.SelectedIndex + 1 هي بمثابة رقم
الجزء الأخير البسيط لدرس اليوم سيكون عن الأحداث
ما هي الأحداث
النقر باستخدام الماوس حدث تحريك الماوس حدث الضغط على زر من الكيبورد حدث
بداية تحميل الصفحة حدث
تحميل كافة الأدوات في الصفحة يعتبر حدث
هذه هي أمثلة على أحداث الكميوتر وهي شبيهة بأحداثنا كالأكل والمشي والنوم
لنفترض أننا نريد أن ننفذ كود قبل تحميل الصفحة بقليل
ما العمل
إذا لاحظنا سابقا عندما كنا ننقر نقرتين في أي مكان فارغ في صفحتنا كان يظهر تلقائيا هذا الكود
كود:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
ونلاحظ التالي
Protected Sub
بروتكتد وهو محدد الوصول ويعني أن هذا الاجراء سنصل إليه من نفس الفئة والفئة الوارثة لها ( لا عليكم )
وسب تعني أنها دالة لن ترجع قيمة
Page_Load
اسم الاجراء
(ByVal sender As Object, ByVal e As System.EventArgs)
الكائن المرسل و نوع الحدث
Handles Me.Load
اقتناص حدث تحميل الصفحة
أيضا لا عليكم
المهم المفترض أن نكتب متطلبنا بين هذين السطرين
وهذه من أروع المزايا التي تقدمها مايكروسوفت وهي الكود الخلفي code beheind
وهي ليست موجودة في البي اتش بي وهذا ما يجعلها صعبة القراءة
نرى في صفحة الكود الخلفي في أعلى الكود كلمة load وبجانبها صورة البرق
ويسبقها اسم الأداة ( في حالتنا وهي الصفحة ) وبجانبها البرق
ومن هنا يمكن الوصول لأي حدث من أحداث الأدوات
وذلك بتحديد الأداة من اليسار أولا ثم اسم الحدث من على يمينها
افتح قائمة الأحداث وستجد حدث مثلا قبل بدء التحميل وحدث عند إغلاقها وحدث عند حصول خطأ..... إلخ
هناك بعض الأدوات لها أحداث كثيرة ومهمة مثل grid view وعندها سترون مدى أهمية الأحداث
بامكاننا أن ننشئ حدث تحميل الصفحة كالتالي
إذا من الآن وصاعدا لن أقول ضعوا الكود بين هاذين السطرين
بل سأقول
ضعوا الكود التالي في حدث تحميل الصفحة
تم بحمد الله الدرس الرابع الجزء الثاني
وإن شاء الله ستكون الدروس القادمة أكثر متعا وتخصصا طالما لم يطلب مني أن أوضح نقاط محددة أشرحها خارج خطتي
سألني أخ عن كيفية تشغيل الدرس المرفق وهي كالتالي
بعد فك الضغط والتاكد من أن الملفات في المجلد الذي سنختاره
بعد فتح الفيجوال استوديو
اذهب إلى File ?open ? Web SIte
ومن ثم اختر اسم المجلد الموجود به المشروع مباشرة
وفي هذا الدرس لم أضع شيئا كالمعتاد وأرجو من يهتم أن يذكرني
أخوكم خليل من فلسطين