第五章 事件和数据回发机制 2009-04-02(读书笔记)

 

/// <summary>

/// 获得本书更多内容,请看:

/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx

/// </summary>

[DefaultEvent("Click")]

[ToolboxData("<{0}:PostBackEventControl runat=server></{0}:PostBackEventControl>")]

public class PostBackEventControl : Control, IPostBackEventHandler

{

    public event EventHandler Click;

    protected virtual void OnClick(EventArgs e)

    {

        if (Click != null)

        {

            Click(this, e);

        }

    }

    public void RaisePostBackEvent(string eventArgument)

    {

        OnClick(EventArgs.Empty);

    }

    protected override void Render(HtmlTextWriter output)

    {

        output.Write("<INPUT TYPE=submit name="+this.UniqueID+"Value='单击我'

        />");

    }

}

 

控件内容比较简单,仅输出一个提交类型的按钮,由于这个按钮类型为submit,所以当单击按钮时,其本身已经可以提交事件到服务器,但仅仅这样主控件还不能够捕捉到该按钮事件。控件能够捕捉处理该事件需要具备两个条件:第一,主控件继承了IPostBackEventHandler接口以及实现了RaisePostBackEvent方法;第二,必须有name值为UniqueID的客户端标签,页框架只认识控件的name属性。只有这两个条件同时具备才能够使控件具备捕捉并处理事件的机会。

 

语句[DefaultEvent("Click")]的功能是定义Click事件为默认事件。通常把最常用的一个事件定义为默认事件,如果定义了默认事件,在设计器中双击控件时系统会自动从源代码视图(*.aspx)切换到后面代码(*.cs)页面,并可以自动注册默认事件;否则,仅切换到后台代码,但不注册任何事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值