zoukankan      html  css  js  c++  java
  • PageLoad中抓取Button Click事件

    遇到一种需求,User要求每点一个Button,都要记录log,这可就比较麻烦了~
    想到两种解决的方式
    1.在PageLoad事件中进行处理,抓到Button Click事件,进行记录log
    2.客制一个Button控件,在Button的基类中进行处理

    目前找到第一种事项的方法,只是感觉如果页面元素比较多,可能会比较慢,还未测试过
    如果取的ImageButton,那么从Page.Request.Form中取会的buttonID则会带有ImageButtond 的坐标信息,
    buttonID.X 和 buttonID.Y,所以在Page.FindControl的时候,需要将buttonID的.X或者.Y去掉,否则FindControl是找不到这个ImageButton的

        protected void PageBase_Load(object sender, EventArgs e)
        
    {
            
    foreach (string buttonID in this.Page.Request.Form)
            
    {
                
    //Page Load时抓取Request 的 Button ID
                Control pageControl = this.Page.FindControl(buttonID);
                
    if (pageControl is Button)
                
    {
                    
    //this.Page.Response.Write(pageControl.ID + "; " + pageControl.ClientID + ";<br/>");
                }

                
    else if (pageControl is ImageButton)
                
    {
                }

            }

        }

    第二种方式理论上如下方式即可实现,只是还没有进行测试

    using System;
    using System.Data;
    using System.Configuration;
    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;

    /// <summary>
    /// Summary description for LogButton
    /// </summary>

    public class LogButton : Button
    {
        
    public LogButton()
        
    {
            
    //
            
    // TODO: Add constructor logic here
            
    //
        }


        
    protected override void OnClick(EventArgs e)
        
    {
            
    base.OnClick(e);
            
    //Save Log
        }

    }
  • 相关阅读:
    C#生成满足特定要求的密码
    抽象方法(abstract method) 和 虚方法 (virtual method), 重载(overload) 和 重写(override)的区别于联系
    面试问题 ---C#中的委托
    面试问题
    如何用DOS命令,获取一个目录下的文件数目
    vim怎么把一个写的代码文件另存到任意文件夹里?
    WIN7 不用格式化磁盘怎么把FAT32系统改成NTFS系统
    rhel6 中安装使用finger命令
    Redhat enterpise6 安装unix2dos/dos2unix
    阐述Linux操作系统之rpm五种基本操作
  • 原文地址:https://www.cnblogs.com/forward/p/1085131.html
Copyright © 2011-2022 走看看