首页 / C# / 基于其他字段的条件验证,C#
基于其他字段的条件验证,C#
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于其他字段的条件验证,C#,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2874字,纯文字阅读大概需要5分钟。
内容图文
![基于其他字段的条件验证,C#](/upload/InfoBanner/zyjiaocheng/673/dd8bca0eb8fe4f87b6f25f0e06a41a6a.jpg)
我有几种情况需要创建:
1)如果下拉列表具有特定值,则将特定文本框设为必填字段.
2)如果某个特定的文本框包含数据,则使另一个文本框成为必需(如果填写了地址字段,则需要城市,州和邮政编码)
我有从看起来正确的一对CustomValidators调用的代码:
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="txt_pat_idValidate" ControlToValidate="txt_pat_id"
ErrorMessage="Text must be 8 or more characters." Display="Dynamic"/>
protected void txt_pat_idValidate(object sender, ServerValidateEventArgs e)
{
if (ddl_addl_pat_info.SelectedValue.ToString() == "2")
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="addresspartsValidate" ControlToValidate="txt_city"
ErrorMessage="Complete address must be entered." Display="Dynamic"/>
protected void addresspartsValidate(object sender, ServerValidateEventArgs e)
{
if (txt_pat_address.Text.Length > 1)
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
但据我了解,如果我正在测试的文本框为空,则该框永远不会验证,因此如果它们为空,则不会触发,这使得很难检查必填字段.那么…有什么想法吗?
另外,关于我是否需要同时拥有测试的客户端版本和服务器版本,我的说法相互矛盾.也许在旧版本中是必需的,现在不是吗?
解决方法:
您必须考虑一些落后.您的自定义验证器应位于显示错误的项目(特殊文本框)上.文本框上的自定义验证器应检查下拉菜单,以查看该下拉菜单是否具有触发文本框所需条件的特定条件.如果发现它为true,则要检查文本框是否具有输入并相应地返回args.IsValid.
protected void cvTimeOfDay_ServerValidate(object source, ServerValidateEventArgs args)
{
if(ddlTimeOfDay.SelectedValue == "1" && txtbAddress.Text.Length == 0)
args.IsValid = false;
else
args.IsValid = true;
}
var MyValidation = {
DropdownValidation: function (sender, eventArgs) {
var isValid;
if (eventArgs && $('#ddlTimeOfDay').val() == '1') {
isValid = false;
}
else
isValid = true;
eventArgs.IsValid = isValid; }
}
<asp:DropDownList ID="ddlTimeOfDay" runat="server" ClientIDMode="Static">
<asp:ListItem Text="-Select-" Value="0"></asp:ListItem>
<asp:ListItem Text="PM" Value="1"></asp:ListItem>
<asp:ListItem Text="AM" Value="2"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:TextBox Text="" ID="txtbAddress" runat="server" ClientIDMode="Static"></asp:TextBox>
<asp:CustomValidator ID="cvTimeOfDay" runat="server"
ErrorMessage="MustSelectValue"
ClientValidationFunction="MyValidation.DropdownValidation"
ControlToValidate="txtbAddress" ValidationGroup="group1"
onservervalidate="cvTimeOfDay_ServerValidate" ValidateEmptyText="true"></asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="group1"/>
要使用自定义验证器验证空白文本框,您需要将ValidateEmptyText属性设置为“ true”.
通常,如果您的网站无法确保打开JavaScript即可使用该页面,则可以同时使用两者.某些浏览器可以关闭JavaScript.如果JavaScript已关闭,则会绕过您的验证.使用客户端验证是有好处的,因为它不会每次都回发验证输入,而是在客户端上正确执行输入.
内容总结
以上是互联网集市为您收集整理的基于其他字段的条件验证,C#全部内容,希望文章能够帮你解决基于其他字段的条件验证,C#所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。