2009-08-13 5 views
1

Ich verwende ein WizardControl in .NET 2.0. Im ersten Schritt (der auf StepType = "Start" gesetzt ist), wenn die nächste Schaltfläche geklickt wird, führe ich den serverseitigen Validierungscode aus. Aber egal, was ich mache, es geht weiter zum nächsten Schritt. Hier ist mein Code:Wie stoppen Sie die Schaltfläche Weiter in einem 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 

Antwort

1

Das NextButtonClick Veranstaltung Wizard-Steuerelement hat einen „WizardNavigationEventArgs“ Parameter, der eine Eigenschaft "Cancel" Hilfe enthält den aktuellen nächsten Navigationsvorgang abzubrechen.

mit freundlicher Genehmigung von

Steven Cheng Microsoft Online Support

4

Sie e.Cancel=true schreiben können, wenn Sie in jedem Assistenten Ereignis arbeiten. Hier ist "e" ein Alias ​​für

1

Wie andere erwähnt haben, können Sie die Cancel Eigenschaft der WizardNavigationEventArgs verwenden. Hier ist Ihr Code aktualisiert, um das widerzuspiegeln:

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 
Verwandte Themen