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 />
<asp:TextBox ID="day_tb" runat="server" MaxLength="2" Width="15px"></asp:TextBox> <asp:Label ID="Label4" runat="server" Text="/" Font-Bold="True"></asp:Label>
<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> <asp:Label ID="Label5" runat="server" Text="/" Font-Bold="True"></asp:Label> <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的验证功能。
这种方法的问题是只在提交表单时才会进行验证。
我希望动态验证它,就像您使用RequiredFieldValidator
和RegularExpressionValidator
时所发生的那样。
是否可以使用诸如CustomValidator
之类的内容来动态验证textbox
和dropdownlist
的组合?
答案 0 :(得分:0)
您可以尝试使用CustomerValidator,如此处所述
http://www.codeproject.com/Articles/9522/CustomValidator-dependent-on-multiple-controls
或者 您可以使用逻辑创建验证函数,并在选择更改事件上调用它以获取TextBox的下拉列表和文本更改事件。因此,任何时候,任何会触发事件的事情都会发生变化,并会调用您的验证功能。