使用C#asp.net有选择地在文本框上应用验证

时间:2013-12-12 07:40:58

标签: c# asp.net .net

我正在使用C#,asp.net 3.5。我有一个下拉列表,其值如下:

Pick last 24 hrs data
Pick last 48 hrs data
Pick data between dates

当我选择Pick data between dates时,它会显示两个文本框,用户可以在其中设置“从日期”和“到日期”

我想应用验证,如果用户选择between dates option,则必须填写日期'文本框,对于其他下拉值,不需要检查文本框的值。

我应该通过jquery / javascript(我已经在做)或者有没有办法通过使用现有的验证控件来实现这一点?

3 个答案:

答案 0 :(得分:0)

是的,你可以通过比较验证

来做到这一点

请参阅此示例:

<asp:CompareValidator ID="cmpVal1" ControlToCompare="txtStartDate" 
         ControlToValidate="txtEndDate" Type="Date" Operator="GreaterThanEqual"   
         ErrorMessage="*Invalid Data" runat="server"></asp:CompareValidator>

答案 1 :(得分:0)

您可以在js中添加custom validation methods

您也可以在模型中的元素上添加自定义属性(使用C#代码)并编写自定义行为(例如,阅读this answer)。

答案 2 :(得分:0)

在我看来,如果你甚至使用javascript进行验证,你应该在服务器上复制相同的验证。在其他情况下,可以在浏览器中禁用javascript并将无效的表单发送到服务器。如果你想提供漂亮的用户体验,你应该创建javascript验证。

如果您正在寻找纯粹的asp.net方法,您可以执行以下操作: 1)设置下拉列表Autopostback =“true”,每次在下拉列表中更改值时都会触发回发。

<asp:DropDownList id="ddl" 
       AutoPostBack="True"  
       runat="server">

2)为您的日期时间字段添加验证控件。

<asp:RequiredFieldValidator />

3)根据所选的下拉值,在回发期间禁用或启用验证控件。