2012-02-16 2 views
-1

이 사용자 컨트롤을 만들었습니다.서버 컨트롤에서 이벤트 클릭이 발생하지 않습니다.

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 메서드는 해당 메서드가 처리하는 단추를 클릭 할 때 호출되지 않습니다. 구체적인 이벤트 arent 제기.

왜? 나는 뭔가를 놓친다?

+0

-1 (_everything_ 게시 용) _relevant_ 코드 만 게시하십시오. 그리고 버튼을 누르지 않으면 클릭 이벤트가 발생하지 않습니다. – Oded

+0

그래,하지만 전체 파일이 오히려 문제를 찾기에 적절하다는 것을 알고있다. 나는 전체 파일을 게시하지 않은 경우 .. 나는 누군가가 그것을 요구했을 것이라고 확신합니다. Click 이벤트를 발생시키지 않는 모든 버튼. – Rushino

+0

CompositeControl 클래스에서 이와 같은 것으로 상속 받기를 원할 것입니다. – N0Alias

답변

0

해결책을 찾았습니다. 나는 Controls.Add (..)를 사용하여 동적으로 생성 된 버튼을 추가해야했습니다.

관련 문제