0

我希望允许用户选择离开注册页面。然而,注册页面是一个带有RequiredFieldValidators 的ASP:Wizard。

如何在不删除 RequiredFieldValidators 的情况下解决此问题?向导的“下一步”按钮似乎内置在向导控件中,似乎不允许我应用 ValidationGroup 属性,这似乎是处理这种情况的典型方法。

谢谢

4

3 回答 3

2

来自http://forums.asp.net/p/1022184/1385194.aspx

在反复搜索如何验证我的向导控制步骤之后,我想出了这些解决方案。请记住,每个步骤都应该有自己的验证组。对于这些示例,我使用“表单”作为我的验证组。

1) 验证下一个按钮点击。对于这个,我只需使用 2 asp:Button 覆盖向导控件自动生成的上一个和下一个按钮。然后将原因验证设置为 true 并分配一个验证组。请注意,重要的部分在 CommandName 部分。

<StepNavigationTemplate >
<asp:Button ID="btnPrevious" runat="server" CssClass="WizardControlButton" Text="Previous" CommandName="MovePrevious"  />
<asp:Button ID="btnNext" runat="server" CssClass="WizardControlButton" CommandName="MoveNext" Text="Next" CausesValidation="true" ValidationGroup="Form" />
</StepNavigationTemplate>

2)侧边栏点击验证 这也很简单。您在控件的 SideBarButtonClick 事件中添加代码,然后检查当前的步骤 ID。在它使用参数中的验证组验证页面之后。如果页面无效。它取消事件。

Protected Sub wizRegistration_SideBarButtonClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.WizardNavigationEventArgs) Handles wizRegistration.SideBarButtonClick
    If wizRegistration.ActiveStep.ID = "wizSelectPostalCode" AndAlso e.NextStepIndex > e.CurrentStepIndex Then
        Page.Validate("Form")
        If Not Page.IsValid() Then
            e.Cancel = True   
        End If
    End If
End Sub
于 2009-10-12T20:50:39.970 回答
1

我遇到了同样的问题。最初的需要是一种允许用户导航离开通过框架ValidationGroup机制实现验证的 ASP.NET 向导控制页面的方法。就我而言,我在<asp:HyperLink>我的 Site.master 主文件的标题中有一个控件。

我没有为向导页面创建一个ValidationGroup并将向导按钮与其关联,而是选择<asp:HyperLink>通过将控件分配给不同的未使用的ValidationGroup.

于 2011-12-14T16:53:30.480 回答
0

您能否在向导之外放置另一个标记为“取消”或“跳过”的按钮,并将 CausesValidation 属性设置为 False?

于 2009-10-12T20:34:08.850 回答