PDA

View Full Version : تغيير رنگ ومتن صفحه



donya100
جمعه 21 اسفند 1388, 11:26 صبح
سلام
من بااستفاده از دو DropDown مي خوام رنگ صفحه و رنگ متن صفحه رو عوض كنم .(البته با استفاده از كوكي ) اما هر بار با انتخاب يك مقدار جديد رنگ قبلي نمايش داده مي شود!


protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{

if (Request.Cookies["forecolor"] == null)
{
HttpCookie h2 = new HttpCookie("forecolor", DropDownList2.SelectedValue.ToString());
h2.Expires = DateTime.Now.AddDays(20);
Response.Cookies.Add(h2);
}
else
Request.Cookies["forecolor"].Value = DropDownList2.SelectedValue;



Label2.Attributes.Add("Style", "Background-color:" + Request.Cookies["backcolor"].Value.ToString() + ";color:" + Request.Cookies["forecolor"].Value.ToString());

}

Peyman.Gh
جمعه 21 اسفند 1388, 11:48 صبح
علت استفاده شما از کوکی چیه ؟!
من کد شما را یکم تغییر دادم ببینید :

protected void DropDownList2_SelectedIndexChanged1(object sender, EventArgs e)
{
if (Request.Cookies["forecolor"] == null)
{
HttpCookie h2 = new HttpCookie("forecolor", DropDownList2.SelectedValue.ToString());
h2.Expires = DateTime.Now.AddDays(20);
Response.Cookies.Add(h2);
}
else
Request.Cookies["forecolor"].Value = DropDownList2.SelectedValue;
Label1.ForeColor = System.Drawing.Color.FromName(Request.Cookies["forecolor"].Value);
}

Peyman.Gh
جمعه 21 اسفند 1388, 11:50 صبح
در رویداد Page_Load هم این کد را قرار دهید که در بازدید های بعدی اعمال شود.


protected void Page_Load(object sender, EventArgs e)
{
try
{
Request.Cookies["forecolor"].Value = DropDownList2.SelectedValue;
Label1.ForeColor = System.Drawing.Color.FromName(Request.Cookies["forecolor"].Value);
}
catch
{
}
}

موفق باشید.

rahil_2008
جمعه 21 اسفند 1388, 18:39 عصر
سلام دوست عزیز
شما چرا برای دستور else این دو خطو ننوشتید؟

h2.Expires = DateTime.Now.AddDays(20);
Response.Cookies.Add(h2);

مگه نمی خواید تغییراتتون اعمال بشه؟

rahil_2008
جمعه 21 اسفند 1388, 18:43 عصر
حتی اگر هم که نخواید تغییرات اعمال شده در else برای دفعات بعدی هم اعمال بشه، چون دستور

Label2.Attributes.Add("Style", "Background-color:" + Request.Cookies["backcolor"].Value.ToString() + ";color:" + Request.Cookies["forecolor"].Value.ToString());


داره رنگ صفحه را از کوکی می خونه پس طبیعیه که همیشه اولین رنگی را که انتخاب کردین را نمایش بده چون فقط اونو تو کوکی ذخیره کردین