اليوم سنقوم بدراسة الطريقة الثانية من طرق نقل البيانات من صفحة الى صفحة أخرى وهي طريقة query String
وهذه الطريقة تكون بتمرير معلومات باستخدام ال URL وهو العنوان الذي نقوم بكتابته في المتصفح للدخول على أي صفحة فمثلا للدخول على صفحة جوجل سيتم كتابة ال URL الخاص بها وهو Google
وتكثر استخدام هذه الطريقة في محركات البحث ومثال عليها
organic gardening - Google Search
ال querystring هو جزء من ال URL ويبدأ بعد علامة الإستفهام
ففي هذه الحالة تم تعريف متغير يسمى q ويحتوي على النص التالي organic + gardening
وهذه الطريقة أيضا تكون واضحة في مواقع التجارة الإلكترونية e-commerce مثل موقع الأمازون
ولكن نلاحظ أن المعلومات التي تمرر عبر ال query String تكون ظاهرة أمام الجميع لذلك لا يتوجب تمرير بيانات حساسة عبرها
خلينا الآن نقوم بعمل مثال لكي تتوضح الفكرة أكثر
1- نقوم بعمل صفحتين واحدة باسم QueryString والأخرى باسم QueryStringRecipient
2- الصفحة الأولى تكون محتوية على التالي listbox و label و checkbox و button
3- الصفحة الثانية ستكون محتوية على label
كما في الصورة التالية
4- يتم النقر على الزر الموجود في الصفحة الأولى نفرتين وكتابة الكود التالي
سي شارب C#
كود:
If ( listbox1. SelectedIndex == -1 )
{
lblError.Text = “ You must select an item. “ ;
}
Else
{
String url = “QueryStringRecipient.aspx? “;
url += “ Item= “ + listbox1.selectedItem.Text + “&”;
url += “ Mode = “ + checkbox1.checked.ToString() ;
Response.Redirect (url);
}
وهذا الكود معناه أن اذا لم يتم اختيار أي اختيار من ال listbox اعرض رسالة أنه يجب اختيار خيار واحد
أما اذا تم اختيار خيار يتم تعريف متغير وهو لتعريف ال url ويحتوي ال querystring على متغيرين
وهنا نلاحظ أننا في حال عرفنا أكثر من متغير يتم استخدام & للفصل بينهم
وآخر جملة هي لنقل المستخدم الى الصفحة الذي اسمها مخزن في المتغير url
ويتم كتابة الكود التالي في الصفحة الثانية في دالة ال Page-load
كود:
lblInfo.Text=”Item:” + Request.QueryString[“Item”];
ibiInfo.Text+=”<br/> Show Full Record: “ ;
lblInfo.Text += Request.QueryString[“Mode”];
وهنا يعني الكود أنه سيتم طباعة ال item الذي سيتم اختياره من خلال طلبه من ال url وأيضا قيمة ال mode
الفيجوال بيسك دوت نت
كود:
في الصفحة الأولى
If listbox1. SelectedIndex == -1 Then
lblError.Text = “ You must select an item. “
Else
String url = “QueryStringRecipient.aspx? “
url += “ Item= “ & listbox1.selectedItem.Text + “&”
url += “ Mode = “ & checkbox1.checked.ToString()
Response.Redirect (url)
End If
في الصفحة الثانية
lblInfo.Text=”Item:” & Request.QueryString[“Item”]
ibiInfo.Text+=”<br/> Show Full Record: “
lblInfo.Text += Request.QueryString[“Mode”]
وسيكون التنفيذ كالآتي
انتهى الدرس
أتمنى أن ينول اعجابكم وأتمنى لكم التوفيق
شكرا للأخت المبرمجة ايناس على هذه الدروس