验证不同字段的组合

时间:2014-01-02 21:31:34

标签: asp.net vb.net validation

aspx页面

        <asp:Label ID="Label1" runat="server" Text="Date of Birth: "></asp:Label>
        <asp:Label ID="dob_msg_lbl" runat="server" Font-Size="Medium" ForeColor="Red" Text="invalid date of birth" visible="False"></asp:Label>
        <br />
        &nbsp;<asp:TextBox ID="day_tb" runat="server" MaxLength="2" Width="15px"></asp:TextBox>&nbsp;<asp:Label ID="Label4" runat="server" Text="/" Font-Bold="True"></asp:Label>&nbsp;
        <asp:DropDownList ID="month_ddl" runat="server">
            <asp:ListItem Value=""></asp:ListItem>
            <asp:ListItem Value="Jan">January</asp:ListItem>
            <asp:ListItem Value="Feb">Feb</asp:ListItem>
            <asp:ListItem Value="Mar">Mar</asp:ListItem>
            <asp:ListItem Value="Apr">Apr</asp:ListItem>
            <asp:ListItem Value="May">May</asp:ListItem>
            <asp:ListItem Value="Jun">Jun</asp:ListItem>
            <asp:ListItem Value="Jul">Jul</asp:ListItem>
            <asp:ListItem Value="Aug">Aug</asp:ListItem>
            <asp:ListItem Value="Sep">Sep</asp:ListItem>
            <asp:ListItem Value="Oct">Oct</asp:ListItem>
            <asp:ListItem Value="Nov">Nov</asp:ListItem>
            <asp:ListItem Value="Dec">Dec</asp:ListItem>
        </asp:DropDownList>&nbsp;<asp:Label ID="Label5" runat="server" Text="/" Font-Bold="True"></asp:Label>&nbsp;<asp:TextBox ID="year_tb" runat="server" Width="30px" MaxLength="4"></asp:TextBox>


aspx.vb页面

            Dim dobStr As String = day_tb.Text + " " + month_ddl.SelectedValue + " " + year_tb.Text
            Try
                    dob = Convert.ToDateTime(dobStr)
            Catch ex As Exception
                    dob_msg_lbl.Visible = True
            End Try

目前,当dob_msg_lbl.visible导致异常时,我将true设置为Convert.ToDateTime,从而模仿asp.net的验证功能。

这种方法的问题是只在提交表单时才会进行验证。

我希望动态验证它,就像您使用RequiredFieldValidatorRegularExpressionValidator时所发生的那样。

是否可以使用诸如CustomValidator之类的内容来动态验证textboxdropdownlist的组合?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用CustomerValidator,如此处所述

http://www.codeproject.com/Articles/9522/CustomValidator-dependent-on-multiple-controls

或者 您可以使用逻辑创建验证函数,并在选择更改事件上调用它以获取TextBox的下拉列表和文本更改事件。因此,任何时候,任何会触发事件的事情都会发生变化,并会调用您的验证功能。