TOC

This article is currently in the process of being translated into Vietnamese (~99% done).

State:

Cookies

Cookie là đoạn text nhỏ, lưu trong máy trạm và dùng bởi website có thiết lập cookie. Nó cho phép ứng dụng web lưu thông tin người dùng, và sau đó dùng lại trong mỗi trang nếu cần. Đây là một ví dụ mà chúng ta lưu thông tin về màu nền của ngời dùng:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Cookies</title>
</head>
<body runat="server" id="BodyTag">
    <form id="form1" runat="server">
    <asp:DropDownList runat="server" id="ColorSelector" autopostback="true" onselectedindexchanged="ColorSelector_IndexChanged">
        <asp:ListItem value="White" selected="True">Select color...</asp:ListItem>
        <asp:ListItem value="Red">Red</asp:ListItem>
        <asp:ListItem value="Green">Green</asp:ListItem>
        <asp:ListItem value="Blue">Blue</asp:ListItem>
    </asp:DropDownList>
    </form>
</body>
</html>

Trang chỉ đơn giản chứa DropDownList và tự động gửi về cho server mỗi khi phần tử mới được chọn. Nó có 3 màu lựa chọn bên cạnh màu mặc định là trắng. Một khi một phần tử mới được chọn thì phương thức ColorSelector_IndexChanged được gọi từ CodeBehind sau:

using System;
using System.Data;
using System.Web;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(Request.Cookies["BackgroundColor"] != null)
        {
            ColorSelector.SelectedValue = Request.Cookies["BackgroundColor"].Value;
            BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        }
    }

    protected void ColorSelector_IndexChanged(object sender, EventArgs e)
    {
        BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
        HttpCookie cookie = new HttpCookie("BackgroundColor");
        cookie.Value = ColorSelector.SelectedValue;
        cookie.Expires = DateTime.Now.AddHours(1);
        Response.SetCookie(cookie);
    }
}

Hai phần được giải thích ở đây. Đầu tiên là phương thức Page_Load được gọi mỗi khi trang được yêu cầu. Tại đây chúng ta kiểm tra một cookie để cho chúng ta biết màu nền được dùng. Nếu chúng ta tìm được thì chúng ta thiết lập thông qua dropdown list chỉ băng thuộc tính style của thẻ body.

Chúng ta có phương thức ColorSelector_IndexChanged được gọi mỗi khi người dùng chọn một màu mới. Tại đây chúng ta thiết lập màu nền của trang, và sau đó chúng ta tạo một cookie để lưu giá trị. Chúng ta đặt nó trong vòng 1h, và sau đó chúng ta thiết lập bằng cách gọi phương thức SetCookie trong đối tượng Response.

Thử chạy ví dụ và thiết lập màu. Bây giờ đóng trình duyệt lại và mở nó. Bạn sẽ thấy lựa chọn màu sắc được lưu lại trong vòng 1h. Tuy nhiên, bạn có thể thiết lập thời gian lưu trữ dài hơn.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!