本帖最后由 cainong2001 于 2009-08-17 11:44:52 编辑

解决方案 »

  1.   

    楼主...这个.我曾经写过这样的,包括停留时间,点击列表.等等建议你,使用js,事件呢使用ajax,在每个事件触发前先记录,再触发在load事件中记录开始时间.并开始记数利用unload事件,记录停止时间在关闭窗口,页面导向,回传前,IE或是ff会自动调用该事件
    在该事件中使用xmlhttp回发到服务器并记录技术细节就这么多了对了,你的页面判断其实不要紧的,你可以统一管理的,使用httpmodule,你维护一个列表,
    然后如果请求在这个列表中,你就往页面输出 
    <script src="record.js"     />这样的字符串就可以了,至于转向来的页面用js 的document.reffer就可以了。。如果我没记错.
      

  2.   

    谢谢 zyug,我想能不能就在.cs文件中实现?而不需要写js
      

  3.   

    在想要获取的链接控件上加入onclick事件就可以了啊,点击ajax post数据库记录
      

  4.   

    就你的要求来说,写.cs也是可以完成的,你可以判断  Request.UrlReferrer 是否为你需要的来源
    来判定是否需要保存,每个Button加上一个记录事件
    另外,还要知道哪个类被实例化过并保存类名很简单..在构造函数中加入一个记录事件..
    你也可以先写一个基类,就干这事,然后所有的类,从它继承
      

  5.   

    我的基类是BasePageForm,且有很多页面继承它,例如,即public partial class Application_BaseData_CorpLevelSets:BasePageFormpublic partial class Application_BaseData_EmployeeCosts:BasePageFormpublic partial class Application_BaseData_ProductLines : BasePageForm(后面还有很多这样的页面)那么我在构造函数public BasePageForm(){}中如何判断是哪个子类被实例化呢?记录事件怎么写呢?谢谢!
      

  6.   

    你或许可以加一个虚方法
    virtual string gettypename()
    你如果是virtual.并且override 了.这个得到就是重写过的我怎么记得如果你在里面用this.getttype()是获得子类的名称的.好像这个是重写过的
      

  7.   


    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                baset t = new baset1();
                baset t1 = new baset2();
            }
        }
        public class baset
        {
            public baset()
            {
                //此处记录
                Console.WriteLine(string.Format(" {0} constructed ", this.GetType().ToString()));
            }
        }
        public class baset1 :baset
        {
            public baset1()
            {
              
            }
        }    public class baset2 : baset
        {
            public baset2()
            {
                
            }
        }}
    运行结果 ConsoleApplication1.baset1 constructed
     ConsoleApplication1.baset2 constructed
    请按任意键继续. . .
      

  8.   

    zyug,你用这个例子教我好不好?我的基类是BasePageForm,且有很多页面继承它,例如,即 public partial class Application_BaseData_CorpLevelSets:BasePageForm public partial class Application_BaseData_EmployeeCosts:BasePageForm public partial class Application_BaseData_ProductLines : BasePageForm (后面还有很多这样的页面) 那么我在构造函数 public BasePageForm(){}中如何判断是哪个子类被实例化呢?记录事件怎么写呢?谢谢!
      

  9.   

    public BasePageForm(){//此处记录
    string s = string.Format(" {0} 被实例化 ,方法调用页面 {1},从 {3} 页面转来  调用时间 {2} ", this.GetType().ToString(),HttpContext.Current.Request.Url.ToString(),System.DateTime.Now.ToString(),HttpContext.Current.Request.UrlReferrer.ToString() );
    //保存此s 到你的记录中
    }应该是这样吧,建议你手动写一下上面的例子,可能会深刻点