css&javasrcipt 計數器及上次瀏覽時間(cookie;、literal)
本次練習基本用法,主要是展示
asp.net的literal元件,使用該元件達到用程式
後端,使前端asp網頁元件變身成html標籤
使文字型態的來客人數,轉成圖片顯示
網頁原始碼:
程式碼:
asp.net的literal元件,使用該元件達到用程式
後端,使前端asp網頁元件變身成html標籤
使文字型態的來客人數,轉成圖片顯示
網頁原始碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GG.aspx.cs" Inherits="MyAspWeb.GG" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>這是首頁</title> <style type="text/css"> body { background-image:url(images/bg/b10.gif) } </style> </head> <body> <form id="form1" runat="server"> <p><h3>這是ASP.NET的首頁</h3></p> <p> <h3>您是第 <asp:Literal ID="VisitedLiteral" runat="server"></asp:Literal> 光臨的客人 <!--程式撰寫後會代換VisitedLiteral的值 Literal的特性就是可以變身,只要在程式後端代入對應的 html語法,就能將這個標籤變成其他東西,這邊會將來訪 次數的文字,轉成圖片顯示 --> </h3> </p> <p> <h3>您上次來的時間為: <asp:Literal ID="LastLiteral" runat="server"></asp:Literal> <!--這邊將該使用者上次來訪時間,重新顯示,用cookie記錄 --> </h3> </p> <p> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" /> </p> <p> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <!--label也可做到變身,但label元件佔系統資源較大 --> </p> <p> <asp:Literal ID="Literal1" runat="server"></asp:Literal> <!--Literal,相對label佔的資源較小 --> </p> </form> </body> </html>
程式碼:
protected void Page_Load(object sender, EventArgs e) { //計數器------------------------------------------------------------- String path = Server.MapPath("App_data/VisitedCount.txt"); //抓出系統的根目錄 //後面App_data/VisitedCount.txt是存放次數的文件 //其中App_data是ASP.NET預設資料夾之一 //該資料夾特色是使用者不能直接存取檔案 String VisitedCount = System.IO.File.ReadAllText(path); //將文件中所有文字讀出 int temp = int.Parse(VisitedCount) + 1; //轉型後加1 String number = temp.ToString(); System.IO.File.WriteAllText(path, number);//寫回去該文件 Literal1.Text = temp.ToString(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 8 - number.Length; i++) {//來訪人數設定為8位數,減掉number的長度補零的圖案 sb.Append(""); } for (int i = 0; i < number.Length; i++) {//逐一取出number數字,並找出對應的數字圖寫上 sb.Append(String.Format("",number.Substring(i,1))); } //將sb寫回VisitedLiteral.Text,使它變身成html語言 //如此在讀取網頁會找出對應的圖顯示成瀏覽人數 VisitedLiteral.Text = sb.ToString(); //------------------------------------------------------------------------- //紀錄上次時間------------------------------------------------------------- if (Request.Cookies["lastTime"] != null) LastLiteral.Text = Request.Cookies["lastTime"].Value; else LastLiteral.Text = "您第一次光臨本站"; HttpCookie cc = new HttpCookie("lastTime"); cc.Value = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); cc.Expires = DateTime.Now.AddMonths(3);//到期日為本日加3個月 Response.Cookies.Add(cc); } //以下2個方法是展示Label跟Literal都可以變身------------------------------------ protected void Button1_Click(object sender, EventArgs e) { //Label 與Literal的差別在literal可以變身 //可以隨意輸入html語言進行轉換,本來label不行,後來改為可以 //label比較適合對文字進行變化 //literal比較適合用在後端cs想對前端的aspx進行變化時,放入html語法 Label1.Text = "按鈕1被按了"; Literal1.Text = "按鈕1被按了"; } protected void Button2_Click(object sender, EventArgs e) { Label1.Text = " "; Literal1.Text = " "; }
留言
張貼留言