【发布时间】:2011-04-01 21:07:28
【问题描述】:
我需要创建几个场景:
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;
}
}
但据我了解,如果我正在测试的文本框为空,则该框永远不会验证,因此如果它们为空,则不会触发,这使得检查必填字段变得困难。那么……想法?
另外,关于我是否需要同时拥有客户端和服务器版本的测试,我得到了相互矛盾的故事。也许在旧版本中是必需的,现在不需要了?
【问题讨论】:
标签: c# validation customvalidator