User control with event (VB)
<%@ Page language="vb" AutoEventWireUp="false" %>
<%@ Register TagPrefix="uc1" TagName="Control" Src="Control.ascx"%>
<script runat="server">
Sub MultipleReached(ByVal sender As Object, ByVal e As EventArgs)
Message.Text="Congratulations! You were the 5th visitor!"
End Sub
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<body MS_POSITIONING="FlowLayout">
<form id="Control" method="post" runat="server">
<uc1:Control id="Control1"
runat="server"
Multiple="5"
OnMultipleReached="MultipleReached"></uc1:Control>
<asp:Label ID="Message" Runat="server" EnableViewState="False" />
</form>
</body>
</html>
File: Control.ascx
<%@ Control Language="vb" Src="Control.ascx.vb" Inherits="Control.Control" AutoEventWireup="false" %>
<asp:Label id="OutputLabel" runat="server"></asp:Label>
File: Control.ascx.vb
Namespace Control
Public MustInherit Class Control
Inherits System.Web.UI.UserControl
Protected WithEvents OutputLabel As System.Web.UI.WebControls.Label
Private _multiple As Integer = 10
Public Property Multiple() As Integer
Get
Return _multiple
End Get
Set(ByVal Value As Integer)
_multiple = Value
End Set
End Property
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
InitializeComponent()
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Application("count") Is Nothing Then
Application("count") = 0
End If
Application.Lock()
Application("count") = Application("count") + 1
Application.UnLock()
If Application("count") Mod Multiple = 0 Then
OnMultipleReached(System.EventArgs.Empty)
End If
OutputLabel.Text = Application("count").ToString()
End Sub
Public Event MultipleReached(ByVal sender As Object, ByVal e As System.EventArgs)
Public Overridable Sub OnMultipleReached(ByVal e As System.EventArgs)
RaiseEvent MultipleReached(Me, e)
End Sub
End Class
End Namespace
Related examples in the same category