[ dmd @ 29.05.2007. 18:07 ] @
Kako u asp.net-u napraviti da se tačno zna koja stranica je koliko puta od korisnika otvorena? Predpostavljam da se napravi tekst fajl i pri događaju page_load uvećava broj za jedan ili ima svrsishodnija procedura? |
[ dmd @ 29.05.2007. 18:07 ] @
[ bjevta @ 29.05.2007. 20:53 ] @
Ovako:
1. Napravi user kontrolu, nazovije je, na primer, WucCounter 2. U code behind copy/past ovo što sam naveo pod WucCounter.cs 3. U aspx file copy/paste ovo što sam naveo pod WucCounter.aspx 4. CSS u aspx (CssClass="cntnumber") podesi po nahođenju 5. Ovo log.Error("xxx", ex); je od log4net open source projekta - za početak stavi pod komentar To bi bilo to. WucCounter.cs: ------------------------------------------------------ Code: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; public partial class UserControls_WucCounter : System.Web.UI.UserControl { protected static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DoCount(); } } protected void DoCount() { HttpCookie cookie = Request.Cookies[COOKIE_NAME]; GetCounter(); if (cookie == null) { cookie = new HttpCookie( COOKIE_NAME, DateTime.Now.ToString()); cookie.Expires = DateTime.Now.AddHours(1); IncCounter(); } else { } vCnt.Text = cnt.ToString("0000000"); Response.Cookies.Add(cookie); } protected int cnt = 1; protected const string COOKIE_NAME = "LastVisit"; protected const string RELATIVE_FILE_NAME = "App_Data/counter.txt"; protected string FileName { get { return Server.MapPath(RELATIVE_FILE_NAME); } } protected void GetCounter() { try { StreamReader sr = new StreamReader(File.Open(FileName, FileMode.OpenOrCreate)); string sCnt = sr.ReadLine(); sr.Close(); cnt = sCnt != null ? int.Parse(sCnt) : cnt; } catch (Exception ex) { log.Error("GetCounter", ex); } } protected void IncCounter() { cnt++; try { StreamWriter sw = new StreamWriter( File.OpenWrite( FileName ) ); sw.WriteLine(cnt.ToString()); sw.Close(); } catch (Exception ex) { log.Error("IncCounter", ex); } } } ====================================== WucCounter.aspx: ------------------------------------------------- Code: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WucCounter.ascx.cs" Inherits="WucCounter" %> <asp:Label ID="vCnt" CssClass="cntnumber" runat="server" Text="00000"></asp:Label> [Ovu poruku je menjao bjevta dana 31.05.2007. u 23:14 GMT+1] [ dmd @ 30.05.2007. 10:31 ] @
Hvala.Probaću.
[ Drasko M @ 30.05.2007. 16:22 ] @
Napravis Application objekte za svaku stranu i povecavas im vrednost za 1 kada se otvara stranica a nije postback-ovana?
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|