Событие щелчка в управлении сервером не происходит - PullRequest
0 голосов
/ 16 февраля 2012

Я создал этот пользовательский элемент управления.

Imports SAAQ.Utl.W00692BaseControle
Imports System.ComponentModel
Imports System.Web.UI.WebControls
Imports System.Web.UI

<ToolboxData("<{0}:CWNavigation runat=""server""></{0}:CWNavigation>")> _
<DefaultProperty("Id")> _
Public Class CWNavigation
    Inherits WebControl

    Private _message As String

#Region "Événements"

    ''' <summary>
    ''' Événement qui représente le comportement de se rendre à la section suivante.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionSectionSuivante As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement de se rendre à la section précédente.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionSectionPrecedente As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement de revenir à la première section.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionRetourPremiereSection As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement de ser endre à une section spécifique.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionSectionSpecifique As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement d'ouverture d'une nouvelle fenêtre.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionOuvrirNouvelleFenetre As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement de lancement d'impression.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionLancerImpression As EventHandler

    ''' <summary>
    ''' Événement qui représente le comportement de quitter le service.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionQuitter As EventHandler

    ''' <summary>
    ''' Événement qui représente un comportement personnalisé.
    ''' </summary>
    <Browsable(True)> _
    Public Event ActionPersonnalise As EventHandler

    ''' <summary>
    ''' Gérer les événements de Click de toutes les boutons de commandes du contrôle.
    ''' </summary>
    ''' <param name="sender">Source de l'événement.</param>
    ''' <param name="e">Données sur l'événement.</param>
    ''' <remarks>S'occupe de lancer les événements au service.</remarks>
    Protected Sub Bouton_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles _btnSectionSuivante.Click, _
                _btnSectionPrecedente.Click, _
                _btnRetourPremiereSection.Click, _
                _btnSectionSpecifique.Click, _
                _btnLancerImpression.Click, _
                _btnQuitter.Click, _
                _btnPersonnaliser.Click

        _message = "abc"

        ' Déterminer quel bouton a été cliqué.
        Dim bouton As Button = CType(sender, Button)

        ' En fonction du bouton cliqué, envoyer l'événement associé.
        Select Case bouton.ID
            Case _btnSectionSuivante.ID
                RaiseEvent ActionSectionSuivante(sender, e)
            Case _btnSectionPrecedente.ID
                RaiseEvent ActionSectionPrecedente(sender, e)
            Case _btnRetourPremiereSection.ID
                RaiseEvent ActionRetourPremiereSection(sender, e)
            Case _btnSectionSpecifique.ID
                RaiseEvent ActionSectionSpecifique(sender, e)
            Case _btnLancerImpression.ID
                RaiseEvent ActionLancerImpression(sender, e)
            Case _btnQuitter.ID
                RaiseEvent ActionQuitter(sender, e)
            Case _btnPersonnaliser.ID
                RaiseEvent ActionPersonnalise(sender, e)
            Case Else

        End Select

    End Sub

#End Region

#Region "Membres"

    Private WithEvents _btnSectionSuivante As Button = New Button()
    Private WithEvents _btnSectionPrecedente As Button = New Button()
    Private WithEvents _btnRetourPremiereSection As Button = New Button()
    Private WithEvents _btnSectionSpecifique As Button = New Button()
    Private WithEvents _btnLancerImpression As Button = New Button()
    Private WithEvents _btnOuvrirNouvelleFenetre As CWBoutonOuvrirFenetre = New CWBoutonOuvrirFenetre()
    Private WithEvents _btnQuitter As Button = New Button()
    Private WithEvents _btnPersonnaliser As Button = New Button()

#End Region

#Region "Constructeur"

    ''' <summary>
    ''' Constructeur par défaut.
    ''' </summary>
    Public Sub New()

    End Sub

#End Region

#Region "Propriétés"

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "SectionSuivante".
    ''' </summary>
    Public ReadOnly Property BoutonSectionSuivante() As Button
        Get
            Return _btnSectionSuivante
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "SectionPrecedente".
    ''' </summary>
    Public ReadOnly Property BoutonSectionPrecedente() As Button
        Get
            Return _btnSectionPrecedente
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "RetourPremiereSection".
    ''' </summary>
    Public ReadOnly Property BoutonRetourPremiereSection() As Button
        Get
            Return _btnRetourPremiereSection
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "SectionSpecifique".
    ''' </summary>
    Public ReadOnly Property BoutonSectionSpecifique() As Button
        Get
            Return _btnSectionSpecifique
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "LancerImpression".
    ''' </summary>
    Public ReadOnly Property BoutonLancerImpression() As Button
        Get
            Return _btnLancerImpression
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "OuvrirNouvelleFenetre".
    ''' </summary>
    Public ReadOnly Property BoutonOuvrirNouvelleFenetre() As CWBoutonOuvrirFenetre
        Get
            Return _btnOuvrirNouvelleFenetre
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "Quitter".
    ''' </summary>
    Public ReadOnly Property BoutonQuitter() As Button
        Get
            Return _btnQuitter
        End Get
    End Property

    ''' <summary>
    ''' Obtenir le bouton qui lance le comportement "Personnalise".
    ''' </summary>
    Public ReadOnly Property BoutonPersonnalise() As Button
        Get
            Return _btnPersonnaliser
        End Get
    End Property

#End Region

#Region "Méthodes publiques"

    ''' <summary>
    ''' Initialise toutes les boutons de commandes à leur état d'origine.
    ''' </summary>
    Public Sub InitialiserBoutonsNavigation()
        _btnSectionSuivante.Visible = False
        _btnSectionPrecedente.Visible = False
        _btnRetourPremiereSection.Visible = False
        _btnSectionSpecifique.Visible = False
        _btnLancerImpression.Visible = False
        _btnOuvrirNouvelleFenetre.Visible = False
        _btnQuitter.Visible = False
        _btnPersonnaliser.Visible = False
    End Sub

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        MyBase.Render(writer)

        _btnSectionSuivante.RenderControl(writer)
        _btnSectionPrecedente.RenderControl(writer)
        _btnRetourPremiereSection.RenderControl(writer)
        _btnSectionSpecifique.RenderControl(writer)
        _btnLancerImpression.RenderControl(writer)
        _btnOuvrirNouvelleFenetre.RenderControl(writer)
        _btnQuitter.RenderControl(writer)
        _btnPersonnaliser.RenderControl(writer)

        writer.Write(_message & "MSG")
    End Sub

#End Region

    Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
        MyBase.OnInit(e)

        _btnSectionSuivante.CssClass = "UtlCBtn"
        _btnSectionSuivante.Width = New Unit(100, UnitType.Pixel)
        _btnSectionSuivante.ID = "btnSectionSuivante"
        _btnSectionSuivante.PostBackUrl = ""

        _btnSectionPrecedente.CssClass = "UtlCBtn"
        _btnSectionPrecedente.Width = New Unit(100, UnitType.Pixel)
        _btnSectionPrecedente.ID = "btnSectionPrecedente"
        _btnSectionPrecedente.PostBackUrl = ""

        _btnRetourPremiereSection.CssClass = "UtlCBtn"
        _btnRetourPremiereSection.Width = New Unit(100, UnitType.Pixel)
        _btnRetourPremiereSection.ID = "btnRetourPremiereSection"
        _btnRetourPremiereSection.PostBackUrl = ""

        _btnSectionSpecifique.CssClass = "UtlCBtn"
        _btnSectionSpecifique.Width = New Unit(100, UnitType.Pixel)
        _btnSectionSpecifique.ID = "btnSectionSpecifique"
        _btnSectionSpecifique.PostBackUrl = ""

        _btnLancerImpression.CssClass = "UtlCBtn"
        _btnLancerImpression.Width = New Unit(100, UnitType.Pixel)
        _btnLancerImpression.ID = "btnLancerImpression"
        _btnLancerImpression.PostBackUrl = ""

        _btnOuvrirNouvelleFenetre.CssClass = "UtlCBtn"
        _btnOuvrirNouvelleFenetre.Width = New Unit(100, UnitType.Pixel)
        _btnOuvrirNouvelleFenetre.ID = "btnOuvrirNouvelleFenetre"

        _btnQuitter.CssClass = "UtlCBtn"
        _btnQuitter.Width = New Unit(120, UnitType.Pixel)
        _btnQuitter.ID = "btnQuitter"
        _btnQuitter.PostBackUrl = ""

        _btnPersonnaliser.CssClass = "UtlCBtn"
        _btnPersonnaliser.Width = New Unit(100, UnitType.Pixel)
        _btnPersonnaliser.ID = "btnPersonnaliser"
        _btnPersonnaliser.PostBackUrl = ""

        InitialiserBoutonsNavigation()

    End Sub

End Class

Тем не менее, метод Button_Click никогда не вызывается, когда я нажимаю на кнопку, которая описывает его метод.Конкретные события не возникают.

Почему?я что-то упустил?

1 Ответ

0 голосов
/ 18 февраля 2012

Нашел решение.Мне пришлось использовать Controls.Add (..), чтобы добавить кнопку, которую я создал динамически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...