免费邮箱 |加入收藏 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > .NET专区 > ASP.NET技巧

浅解ASP.NET控件开发基础之复合控件事件处理

时间:2011-05-16 19:57:22  来源:站内  作者:潘春会
void RaisePostBackEvent(string eventArgument)
  • {
  • OnClick(EventArgs.Empty);
  • }
  •   RaisePostBackEvent方法有一个eventArgument参数用来传递事件数据.代码实现了一个空参数传递(eventArgument参数为空)的事件OnClick(EventArgs.Empty)

      再比较一下示例一的代码,因为其用到了两个按钮

      Page.GetPostBackEventReference方法用来传递参数

      RaisePostBackEvent方法则以传递参数来判断触发哪个按钮

      小结:

      在控件中直接实现按钮事件,则无需定义自定义事件,但别忘了在RaisePostBackEvent方法中根据传递过来的不同参数来加以判断.

      (2)以自定义事件实现

      根据示例一上面的代码加上自定义委托和事件,如下代码(只列出局部代码,具体可在文章最后下载代码)

      ASP.NET控件开发基础示例二

      

    1. void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
    2. {
    3. if (eventArgument == "Previous")
    4. OnClickPrevious(EventArgs.Empty);
    5. else if (eventArgument == "Next")
    6. OnClickNext(EventArgs.Empty);
    7. }

    调用代码如下

    1. protected void NavButtons2_1_ClickPrevious(object sender, EventArgs e)
    2. {
    3. Label1.Text = "你点击了PreviousText按钮";
    4. }
    5. protected void NavButtons2_1_ClickNext(object sender, EventArgs e)
    6. {
    7. Label1.Text = "你点击了NextText按钮";
    8. }

      小结:在示例一的基础上去除直接实现好的按钮事件,然后自定义事件.

      再次提醒如果大家对回发事件,还请再参考一些文章先弄清楚,或者也可以看看我写的第三篇文章.

      好了,上面讲的都非复合控件,但复合控件实现起来却很相似,或者可以说更加简单.

      下面先来看个简单的示例(大家知道button按钮有CommandName属性和CommandArgument属性)

      ASP.NET控件开发基础示例三

      

    1. ﹤%@ Page Language="C#" %﹥
    2.  
    3. ﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    5. ﹤script runat="server"
    6.  
    7. protected
    来顶一下
    返回首页
    返回首页
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表
    推荐资讯
    如何找出DHCP地址池里未使用的IP地址
    如何找出DHCP地址池里
    国内常用的DNS列表
    国内常用的DNS列表
    Linux邮件服务器软件比较
    Linux邮件服务器软件比
    学用纯CSS打造可折叠树状菜单
    学用纯CSS打造可折叠树
    相关文章
    栏目更新
    栏目热门