繁体   English   中英

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

[英]Selectively applying validation on textboxes with C# asp.net

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

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

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

我想应用一个验证,如果用户between dates optionbetween dates option ,则必须填充日期的文本框,对于其他下拉值,则无需检查文本框的值。

我应该通过jquery / javascript(已经在做)还是通过使用现有的验证控件来实现?

是的,您可以通过比较验证来完成

看到这个例子:

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

您可以在js中添加自定义验证方法

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

我认为,即使您使用JavaScript进行此验证,也应该在服务器上重复相同的验证。 在其他情况下,可以禁用浏览器中的javascript并将无效形式发送到服务器。 如果要提供美观的UX,则应创建javascript验证。

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

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

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

<asp:RequiredFieldValidator />

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM