C# 如果asp.net向导中的验证失败,请取消步骤

C# 如果asp.net向导中的验证失败,请取消步骤,c#,asp.net,C#,Asp.net,我正在我的项目中使用asp.net向导,这对我来说是新的。我在向导中的一个步骤中进行了验证。如果验证失败,我不应该允许用户进入下一步。我使用的是asp.net按钮,可以在向导中的步骤之间导航。如果有人能帮助我,我将不胜感激。您可以尝试取消向导的SideBarButtonClick和NextButtonClick事件: protected void Wizard1_SideBarButtonClick(object sender, WizardNavigationEventArgs e) {

我正在我的项目中使用asp.net向导,这对我来说是新的。我在向导中的一个步骤中进行了验证。如果验证失败,我不应该允许用户进入下一步。我使用的是asp.net按钮,可以在向导中的步骤之间导航。如果有人能帮助我,我将不胜感激。

您可以尝试取消向导的SideBarButtonClick和NextButtonClick事件:

 protected void Wizard1_SideBarButtonClick(object sender, WizardNavigationEventArgs e)
  {
    e.Cancel = !ValidateWizardStep(e.NextStepIndex);
  }

  protected void Wizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
  {
    e.Cancel = !ValidateWizardStep(e.NextStepIndex);
  }

我对Ulises发送的代码进行了一些调整,使其正常工作

  • 我已经为向导添加了
    onnextbutton单击
    属性

    <asp:Wizard ID="wizClaimInfo" runat="server" CssClass="wizard" DisplayCancelButton="True" ActiveStepIndex="0" OnNextButtonClick="wizClaimInfo_NextButtonClick">
    
  • 并遵循下面链接中给出的说明


    我希望这将有助于某人在未来,因为我花了近2天的时间试图找出它。特别感谢Ulises先生。

    向我们展示您目前拥有的代码以及您受到的打击,以便我们可以查看您的问题并进一步处理。这是我的导航按钮事件代码。受保护的void wizNav_Click(objectsender,EventArgs e){if((wizClaimInfo.ActiveStep).ID==“stepSelectAddresses”){var master=RetrieveAddressFields(out IsValid,master);return;}}感谢您的回复,Ulises先生。我使用的是asp.net按钮,而不是向导导航按钮。那么,如何使用asp.net按钮实现同样的效果呢?您的按钮在哪里?您是否将其放置在StepNavigationTemplate中?如果是这样,您应该能够添加CommandName=“MoveNext”或CommandName=“MovePrevious”以触发上述事件。我将该事件用于导航模板中的按钮以及侧栏模板中的链接按钮。确定后,将此属性添加到您的按钮CommandName=“MoveNext”,这将使向导触发上述事件,您可以通过处理这些事件来取消它们。当我将CommandName=“MoveNext”添加到我的链接按钮时,我遇到以下编译器错误。“wizNav_Click”匹配委托“System.EventHandler”时没有重载。
    protected void wizClaimInfo_NextButtonClick(object sender, WizardNavigationEventArgs e) {
    
            if (!IsValid)
            {
                e.Cancel = true;
            }
    
        return;
    }