Cookies :
طريقة أخرى من وسائل الاحتفاظ بالقيم ولكن عند جهاز العميل ، حيث يتم الاحتفاظ بهذه القيم في ملفات نصية ( في اغلب الاحيان ) ولكن ينبغي مراعاة ان يكون متصفح العميل يسمح بمثل هذه العملية ، وهي الطريقة الأكثر شهرة في الاحتفاظ بمعلومات الدخول والتسجيل في المواقع المختلفة .
وهي مشتقة من الفئة System.Web.HttpCookie .
سنجرب الآن مثالاً على الكوكيز ، حيث سنقوم بتسجيل اختيار المستخدم من الألوان - اللون الاخضر أو الأحمر مثلاً -، ومع كل تشغيل للموقع في حالة وجود كوكيز يتم استخدام اللون المفضل ، وإلا يتم اللجوء للون الافتراضي وهو الأصفر مثلاً .
سنقوم برسم الصفحة اولاً باللون الافتراضي الأصفر :
الكود الخاص بها :
كود :
[color=#000080]<asp:Panel ID=[COLOR=#0000ff]"Panel1"[/color] runat=[color=#0000ff]"server"[/color] Height=[color=#0000ff]"134px"[/color] Width=[color=#0000ff]"446px"[/color] BackColor=[color=#0000ff]"Yellow"[/color]>[/COLOR]
قم باختيار اللون المطلوب :[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
[color=#000080]<asp:RadioButton ID=[COLOR=#0000ff]"RadioButton1"[/color] runat=[color=#0000ff]"server"[/color] Text=[color=#0000ff]"أخضر"[/color] GroupName=[color=#0000ff]"colors"[/color] />[/COLOR]
[color=#000080]<br />[/color]
[color=#000080]<asp:RadioButton ID=[COLOR=#0000ff]"RadioButton2"[/color] runat=[color=#0000ff]"server"[/color]
oncheckedchanged=[color=#0000ff]"RadioButton2_CheckedChanged"[/color] Text=[color=#0000ff]"أحمر"[/color] GroupName=[color=#0000ff]"colors"[/color]/>[/COLOR]
[color=#000080]<br />[/color]
[color=#000080]<br />[/color]
[color=#000080]<asp:Button ID=[COLOR=#0000ff]"Button1"[/color] runat=[color=#0000ff]"server"[/color] Text=[color=#0000ff]"تطبيق"[/color] onclick=[color=#0000ff]"Button1_Click1"[/color] />[/COLOR]
[color=#000080]</asp:Panel>[/color]
والآن ، سنقوم بانشاء كوكيز نخزن فيه اللون المختار حالياً بالشكل التالي في حدث الضغط على زر ( تطبيق ) ، وسنعطي هذا الكوكيز تاريخاً للانتهاء :
C#:
كود :
string color;
if (RadioButton1.Checked)
{
color = "Green";
Panel1.BackColor = System.Drawing.Color.Green;
}
else if (RadioButton2.Checked)
{
color = "Red";
Panel1.BackColor = System.Drawing.Color.Red;
}
else
color = "";
HttpCookie Cookie = new HttpCookie("myColor", color);
Cookie.Expires = DateTime.Parse("01/01/2009");
Response.Cookies.Add(Cookie);
vb.net:
كود :
Dim color As String
If RadioButton1.Checked Then
color = "Green"
Panel1.BackColor = System.Drawing.Color.Green
ElseIf RadioButton2.Checked Then
color = "Red"
Panel1.BackColor = System.Drawing.Color.Red
Else
color = ""
End If
Dim Cookie As New HttpCookie("myColor", color)
Cookie.Expires = DateTime.Parse("01/01/2009")
Response.Cookies.Add(Cookie)
والآن في حدث ال Form_Load للتشغيل ، سنقوم بقراءة الكوكيز ، وفي حالة وجود myColor فسيتم معرفة قيمته :
C#:
كود :
if (Request.Cookies["myColor"]!=null)
{
string color = Request.Cookies["myColor"].Value;
if (color=="Green")
Panel1.BackColor = System.Drawing.Color.Green;
else if (color=="Red")
Panel1.BackColor = System.Drawing.Color.Red;
}
vb.net:
كود :
If Request.Cookies("myColor") IsNot Nothing Then
Dim color As String = Request.Cookies("myColor").Value
If color = "Green" Then
Panel1.BackColor = System.Drawing.Color.Green
ElseIf color = "Red" Then
Panel1.BackColor = System.Drawing.Color.Red
End If
End If