ASP.NET RequiredFieldValidator不让我离开asp:向导

时间:2009-10-12 20:16:57

标签: asp.net requiredfieldvalidator

我希望允许用户选择离开“注册”页面。但是,注册页面是一个带有RequiredFieldValidators的ASP:向导。

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

由于

3 个答案:

答案 0 :(得分:2)

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

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

1)点击下一个按钮进行验证。 对于这个,我只需使用2 asp:Button覆盖Wizard Control自动生成的Previous和Next按钮。然后,将原因验证设置为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

答案 1 :(得分:1)

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

我没有为向导页面创建ValidationGroup并将向导按钮与之关联,而是选择&#34;排除&#34;我的<asp:HyperLink>控制权通过将其分配给其他未使用的ValidationGroup

答案 2 :(得分:0)

您是否可以在向导外部添加另一个标记为“取消”或“跳过”的按钮,并将CausesValidation属性设置为False?

相关问题