Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [.NET] Problemi con l'ordine degli eventi

    Ho creato un semplice script per capire quale è l'ordine degli eventi al caricamento di un controllo. Questo è il codice:
    codice:
    Imports System
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    
    namespace MyControls
    
        Public Class MyLogIn
          Inherits Control
          Implements INamingContainer
    
          dim i as integer = 1
          dim cnz as boolean = true
    
          Protected Overrides Sub OnLoad( e As EventArgs )
            context.response.write("LoadPage (" & i &")
    ")
            i += 1
          end sub
    
          Sub CheckPassword (s as object, e as eventargs)
           cnz = false
           context.response.write("LoadCheckPassword(" & i &")
    ")
           i += 1
          End Sub
    
          Sub OutPassword (s as object, e as eventargs)
           cnz = true
           context.response.write("LoadOutPassword(" & i &")
    ")
           i += 1
          End Sub
    
          Protected Overrides Sub OnPreRender( e As EventArgs )
           context.response.write("LoadPreRender(" & i &")
    ")
           i += 1
           CreateChildControls()
          end sub
    
          Protected Overrides Sub CreateChildControls()
           context.response.write("LoadChildControl(" & i &")
    ")
           i += 1
    
           Me.controls.clear
           Dim LogInButton As New Button
           LogInButton.id="LogIn_Button"
             if cnz = true then
               LogInButton.text="LogIn"
               AddHandler LogInButton.Click, AddressOf CheckPassword
             else
               LogInButton.text="LogOut"
               AddHandler LogInButton.Click, AddressOf OutPassword
             end if
           Me.Controls.Add( LogInButton )
          End Sub
    
    
    
    
        End Class
     end namespace
    Il risultato al caricamento del controllo è:

    LoadPage (1)
    LoadChildControl(2)
    LoadPreRender(3)
    LoadChildControl(4)

    Il childcontrol viene caricato due volte perchè lo richiamo dalla sub OnPreRender. In questa maniera posso fare in modo che venga visualizzato un pulsante piuttosto che un altro a seconda della variabile che passo alla pressione del tasto.
    Premendo il tasto di login il risultato diventa:

    LoadChildControl(1)
    LoadPage (2)
    LoadCheckPassword(3)
    LoadPreRender(4)
    LoadChildControl(5)

    ed il pulsante diventa correttamente quello di LogOut. Ora premendo il pulsante di LogOut mi aspetterei di ottenere:

    LoadChildControl(1)
    LoadPage (2)
    LoadOutPassword(3)
    LoadPreRender(4)
    LoadChildControl(5)

    ed invece non accade assolutamente nulla. E' come se la sub OutPassword associata all'envento OnClick del pulsante non venisse richiamata.

    Come mai?

    Ciao
    www.radiana.it - Spartiti musicali e Mp3

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.