服务器控件的学习-处理回发事件

要使控件捕获回发事件,控件必须实现 System.Web.UI.IPostBackEventHandler 接口。此接口的协定允许控件在服务器上引发事件来响应来自客户端的回发。

public InterFace IPostbackEventhandler
    sub RaisePostBackEvent(eventArgument as string)
end interface

回发后,页框架就会搜索发送的内容并确定发送的名称是否与实现IPostbackEventHandler的服务器控件的UniqueID对应,如果对应,页框架就会在该控件上调用RaisePostBackEvent方法

Public Overridable Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent
   OnTextChanged(EventArgs.Empty)
End Sub

 呈现逻辑必须为控件的名称特性分配 UniqueID,如下面的示例所示。如果客户端的控件名称特性与其 UniqueID 不匹配,则页框架无法将回发事件传送给该控件。

Protected Overrides Sub Render(output As HtmlTextWriter)
   output.Write("<INPUT type=submit name=" & Me.UniqueID &     " Value='Click Me' />")
End Sub

全部代码:
Option Explicit
Option Strict

Imports System
Imports System.Web.UI

Namespace CustomControls
   Public Class MyButton
      Inherits Control
      Implements IPostBackEventHandler
      ' Defines the Click event.
      Public Event Click As EventHandler
     
      ' Invokes delegates registered with the Click event.
      Protected Overridable Sub OnClick(e As EventArgs)
         RaiseEvent Click(Me, e)
      End Sub
     
      ' Method of IPostBackEventHandler that raises change events.
      Public Sub RaisePostBackEvent(eventArgument As String) Implements IPostBackEventHandler.RaisePostBackEvent
         OnClick(EventArgs.Empty)
      End Sub
     
      Protected Overrides Sub Render(output As HtmlTextWriter)
         output.Write("<INPUT TYPE=submit name=" & Me.UniqueID & _
               " Value='Click Me' />")
      End Sub
   End Class
End Namespace

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值