User control with event (VB) : Control Action « User Control and Master Page « ASP.Net






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

1.User Control with Events (VB.net)
2.Clear textbox in a user defined control (VB.net)
3.User control with event