1

我在 .NET 2.0 中使用 WizardControl。在单击下一个按钮时的第一步(设置为 StepType="Start")上,我运行服务器端验证代码。但是,无论我做什么,它都会继续下一步。这是我的代码:

    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
4

3 回答 3

4

e.Cancel=true 如果您在任何向导活动中工作,您可以编写。这里“e”是一个别名WizardNavigationEventArgs

于 2011-09-03T06:30:51.417 回答
1

向导控件的NextButtonClick事件有一个“ WizardNavigationEventArgs”参数,其中包含一个"Cancel"帮助取消当前下一个导航操作的属性。

礼貌

Steven Cheng 微软在线支持

于 2009-08-13T13:41:59.233 回答
1

正如其他人所提到的,您可以使用Cancel. WizardNavigationEventArgs这是您更新的代码以反映这一点:

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
于 2011-09-03T07:44:37.300 回答