自己找了个不知道是不是微软的计数器,还得连国外,教育网内好麻烦,就在自己搭的.text blog
上面测试了一个小计数器控件,模仿原作者的很方便,挺好用的calendar控件,
```
@ control language="C#" classname="DottextBlogCounter" inherits="Dottext.Web.UI.Controls.BaseControl"
1 ```
2@import namespace="System.Data"
```
@import namespace="System.Data.SqlClient"
1 ```
2@import namespace="Dottext.Framework.Data"
1<script runat="server">
2 // DottextBlogCounter created on 4/25/2005 by:
3 //*daqingshu http://blog.csdn.net/daqingshu
4
5
6
7 /// <summary>
8 /// Use session or cookie?
9 /// </summary>
10 void Page_Load(object sender, System.EventArgs e)
11 {
12 string number = "";
13 string strSQL = "";
14 string conn = Dottext.Framework.Providers.DbProvider.Instance().ConnectionString;
15 HttpCookie oldCookie = Request.Cookies["counter"];
16 if(oldCookie == null)//if cookie exist,do not count
17 {
18 HttpCookie cookie = new HttpCookie("counter");
19 DateTime dtNow = DateTime.Now;
20 TimeSpan tsMinute = new TimeSpan(0, 1, 0, 0);//cookie expire time 1 hour
21 cookie.Expires = dtNow + tsMinute;
22 Response.Cookies.Add(cookie);
23
24 strSQL = "UPDATE blog_Config set PageVisitCount = PageVisitCount + 1";
25 SqlHelper.ExecuteNonQuery(conn, CommandType.Text, strSQL, null);
26
27 }
28 strSQL = "SELECT PageVisitCount FROM blog_Config WHERE BlogID = " + Convert.ToInt32(CurrentBlog.BlogID);
29 SqlDataReader rdr = SqlHelper.ExecuteReader(conn, CommandType.Text, strSQL, null);
30 if(rdr.Read()){
31 number = rdr[0].ToString();
32 }
33 rdr.Close();
34
35 if(number.Length <= 8)
36 {
37 for(int i = 8; i >= number.Length; --i)
38 {
39 number = "0" + number;
40 }
41 }
42
43 NumberToPicture(number);
44 }
45
46
47
48 private void NumberToPicture(string number)
49 {
50 System.Web.UI.WebControls.Literal Literal1 = new Literal();
51 System.Web.UI.WebControls.Literal Literal2 = new Literal();
52 Literal1.Text = "您是第";
53 phImage.Controls.Add(Literal1);
54 if(number.Length > 0)
55 {
56 for(int i = 0; i < number.Length; ++i)
57 {
58 StringBuilder strImage = new StringBuilder();//maybe I missing the System.text namespace if it doesn't work
59 strImage.Append("~/Images/counter/eggBlue/");
60 strImage.Append(number[i]);
61 strImage.Append(".gif");
62 System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
63 image.ID = "image" + i.ToString();
64 image.ImageUrl = strImage.ToString();
65 phImage.Controls.Add(image);
66 }
67
68 }
69 Literal2.Text = "位访客。";
70 phImage.Controls.Add(Literal2);
71 }
72
73
74
75 </script>
1<asp:placeholder id="phImage" runat="server"></asp:placeholder>
的确是个很简单很小的功能,还修改了数据库结构,在表blog_Config里面
添加PageVisitCount字段,使用的时候,需要修改PageTemplate.ascx文件,在里面添加
```
@ Register TagPrefix="overflow" TagName="DottextBlogCounter" Src="~/Skins/DottextBlogCounter.ascx"
1 合适的位置添加
<overflow:dottextblogcounter id="DottextBlogCounter" runat="server"></overflow:dottextblogcounter>
1另外得自己找好看的图片