首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateUserWizard忽略.MoveTo

CreateUserWizard忽略.MoveTo
EN

Stack Overflow用户
提问于 2013-09-26 22:46:07
回答 1查看 246关注 0票数 3

这快把我逼疯了。我已经查看并尝试了这些SO主题的答案,但都没有用:

CreateUserWizard step changing issue after account creation

Advancing wizard from code-behind in ASP.NET

Prevent Navigation to CreateUserWizardStep in the Postback event of nextbutton

我在数据库上创建用户的向导步骤之前添加了一个向导步骤:

(0)个人资料

(1)注册您的新帐户

(2)完整

在步骤0中,我有一个(可怕的) reCaptcha。步骤0的导航模板:

代码语言:javascript
复制
    <StartNavigationTemplate>
        <asp:Button ID="StartNextButton" runat="server" CommandName="MoveNext" Text="Next"  OnClick="StartNextButton_Click" CausesValidation="true"/>
    </StartNavigationTemplate>

在这里,我验证了代码背后的reCaptcha。此处理程序声明是由VS2012创建的。如果验证失败,则应重新加载(并导航到)该步骤:

代码语言:javascript
复制
    protected void StartNextButton_Click(object sender, EventArgs e)
    {
        recaptcha.Validate();
        if (! recaptcha.IsValid)
        {
            RegisterUser.ActiveStepIndex = 0;
            RegisterUser.MoveTo(RegisterUser.ActiveStep);              
        }
    }

理想情况下(以及我在早期版本中所做的)是在验证失败时设置e.Cancel = true。因为VS只传递EventArgs e,所以Cancel不可用,因此对ActiveStep的操作是空闲的。

调试显示验证正在工作,但在验证失败时-尽管将ActiveStepIndex设置为0-我还是转到了步骤1。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 23:59:40

向导不会停止转到此处的下一步。您需要定义OnNextButtonClick并使用此事件取消移动到下一个向导步骤。

代码语言:javascript
复制
<asp:Wizard OnNextButtonClick="RegisterUser_NextButtonClick" ID="RegisterUser" 
     runat="server">

protected void RegisterUser_NextButtonClick(object sender, WizardNavigationEventArgs e)
 {
           if(RegisterUser.ActiveStep==0)
               {
                 recaptcha.Validate();
                    if (! recaptcha.IsValid)
                        {
                            e.Cancel = true;
                        }            
                }
      return;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19031440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档