2009-08-13 8 views
1

J'utilise un WizardControl dans .NET 2.0. Sur la première étape (qui est définie sur StepType = "Démarrer") lorsque le bouton suivant est cliqué, j'exécute le code de validation côté serveur. Mais, peu importe ce que je fais, ça continue à l'étape suivante. Voici mon code:Comment arrêter le bouton Suivant dans un WizardControl?

Protected Sub Wizard1_NextButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.NextButtonClick 

    Dim oUser As New BE.User 

    Select Case Wizard1.ActiveStepIndex 

     Case 0 

      If Membership.FindUsersByName(UserName.Text).Count = 0 Then 

       oUser.UserName = UserName.Text 
       oUser.Password = Password.Text 
       oUser.Email = Email.Text 

       Wizard1.ActiveStepIndex = 1 
      Else 
       Wizard1.ActiveStepIndex = 0 
       ErrorMessage.Text = "user name already in use" 
      End If 
     Case 1 

     Case 2 


    End Select 
End Sub 

Répondre

1

événement NextButtonClick de la commande Assistant a un paramètre « WizardNavigationEventArgs » qui contient une propriété "Cancel" aide pour annuler l'opération suivante en cours de navigation.

avec la permission de

Support en ligne Steven Cheng Microsoft

4

Vous pouvez écrire e.Cancel=true si vous travaillez en tout état de cause de l'assistant. Ici "e" est un alias pour WizardNavigationEventArgs

1

Comme d'autres l'ont mentionné, vous pouvez utiliser la propriété Cancel du WizardNavigationEventArgs. Voici votre code mis à jour pour refléter cela:

Protected Sub Wizard1_NextButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles Wizard1.NextButtonClick 

    Dim oUser As New BE.User 

    Select Case Wizard1.ActiveStepIndex 
     Case 0 
      If Membership.FindUsersByName(UserName.Text).Count = 0 Then 
       oUser.UserName = UserName.Text 
       oUser.Password = Password.Text 
       oUser.Email = Email.Text 

       Wizard1.ActiveStepIndex = 1 
      Else 
       Wizard1.ActiveStepIndex = 0 
       ErrorMessage.Text = "user name already in use" 
       ' Set the Cancel property to True here 
       e.Cancel = True 
      End If 
     Case 1 

     Case 2 

    End Select 
End Sub 
Questions connexes