打印

[asp.net教程] asp.net 2.0服务器控件之复合控件事件2

asp.net 2.0服务器控件之复合控件事件2

下面是为测试复合控件compositeevent而创建的default.aspx文件代码。
   
  <%@ page language="c#" autoeventwireup="true" codefile="default.aspx.cs" inherits="_default" %>
  <%@ register tagprefix="sample" assembly="webcontrollibrary" namespace="webcontrollibrary" %>

  <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
  <script runat="server">
  void demo1_submit(object sender, eventargs e) {
    lbmessage.text = "您刚才输入的是:" + demo1.text;
  }
  </script>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head id="head1" runat="server">
  <title>为复合控件实现事件-包含法</title>
  </head>
  <body>
  <form id="form1" runat="server">
  <div>
  <sample:compositeevent id="demo1" runat="server" buttontext="提交" onsubmit="demo1_submit" />
  <br />
  <asp:label id="lbmessage" runat="server"></asp:label>
  </div>
  </form>
  </body>
  </html>
   
    示例效果如图1所示。
   
   
  图1 效果图
   
    在以上应用中,当用户单击"提交"按钮之后,将引发demo1_submit处理程序的执行,由此显示文本框输入内容。
   
    需要读者注意的是其内部执行过程。控件定义的顶层事件是submit,其对应事件处理程序是onsubmit,而不是_button_click。_button_click是复合控件的子控件的click事件处理程序。由于在控件实现的代码中定义了子控件的事件处理程序_button_click,所以,当用户单击按钮后,将首先执行_button_click,该方法要求调用顶层事件submit的事件处理程序onsubmit。从外部来看,子控件的事件即暴露为顶层事件。
   
    从以上实现过程来看,包含法使用的是程序代码上的小技巧来实现事件上传功能。下面介绍的冒泡法则与此不同,它使用.net框架提供的事件上传机制来完成子控件的事件上传。

TOP

返回顶部
AYBlue

Processed in 0.062289 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-10 11:02 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP