验证性控件的使用--验证两个文本框至少有一个不为空CustomValidator
转:http://blog.163.com/zhaowencong_2010/blog/static/20402815220122103155643/
有时候我们在注册一个帐号时要求我们留下电话号码,可能有私人电话、公司电话,可能至少要输入一个电话号码!这时可能会用到这样的控件!
CustomValidator 控件可对输入控件执行用户定义的验证。
下面是有关CustomValidator的一些使用方法!
当向页面中插入CustomValidator控件时那立了两个事件处理程序:一个用于客户端,一个用于服务器端的有效验证:
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="请至少输入一个电话号码" ClientValidationFunction="validatePhoneNumber"
onservervalidate="CustomValidator1_ServerValidate">*</asp:CustomValidator>
当点击“发送”按扭时在ClientValidationFunction中设置的Javascript中设置的函数是在ClientValidationFunction中触发的
Javascript代码如下:
<script type="text/javascript">
function validatePhoneNumber(source, args) { var txtPhoneHome = document.getElementById('<%=txtPhoneHome.ClientID %>'); var txtPhoneBussiness = document.getElementById('<%=txtPhoneBussiness.ClientID %>'); if (txtPhoneHome.value != "" || txtPhoneBussiness.value != "") { args.IsValid = true; } else { args.IsValid = false; } } </script>
Code Behind如下:
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { if (txtPhoneHome.Text!=string.Empty||txtPhoneBussiness.Text!=string.Empty) { args.IsValid = true; } else { args.IsValid = false; } }
用户控件的标记部分中定义的这个函数包含对电话号码文本框的两个引用:
var txtPhoneHome = document.getElementById('<%=txtPhoneHome.ClientID %>'); var txtPhoneBussiness = document.getElementById('<%=txtPhoneBussiness.ClientID %>');
txtPhineBussiness.ClientID的代码封闭在服务器端<%= %>块中。这段代码在服务器上运行,然后将控件的ClientID返回给服务器
IsValid | 布尔值,该值指示关联的输入控件是否通过验证。 |