技术开发 频道

【ASP.NET】动态绑定验证控件


【IT168技术文档】

  一个CheckBoxList可以如此验证
  1.在aspx文件中添加javascript
<script language="javascript" type="text/javascript"> <!-- function ClientValidate(sender, args) { var flag = false; var inarr=form1.all.tags("input"); for (var i=0; i<inarr.length; i++) { if(inarr[i].type=="checkbox") { if(inarr[i].checked==true) { flag = true; } } } if (flag) { args.IsValid = true; } else { args.IsValid = false; } } --> </script>
  2.添加自定义验证控件(CustomValidater),并将其ClientValidationFunction 属性设为
Dim customValidatorVer As New CustomValidator customValidatorVer.ClientValidationFunction = "ClientValidate"
  以上是验证表单(form)中所有的checkbox是有一个被选中,引自金色約定之家 。
  如果我想验证多个CheckBoxList呢?
  方案一:动态输出JavaScript
  1.建立生成JavaScript的函数
'''<summary> '''指定CheckBoxList的验证函数 '''</summary> '''<param name="inCheckboxList">需要验证的控件</param> '''<returns>完整的JavaScrip字符串</returns> Private Function GetCheckScript(ByVal inCheckboxList As CheckBoxList) As String Dim newLine As String = Chr(13) & Chr(10) Dim strScript As New StringBuilder strScript.Append("<script language='javascript' type='text/javascript'>") strScript.Append(newLine) strScript.Append("function CheckSearch_" & inCheckboxList.ClientID & "(sender, args)") strScript.Append(newLine) strScript.Append("{" & newLine & "with(document.forms[0])") strScript.Append(newLine & "{" & newLine) strScript.Append(newLine & "var flag=false;") Dim i As Integer For i = 0 To inCheckboxList.Items.Count - 1 strScript.Append(newLine) strScript.Append("if(" + inCheckboxList.ClientID + "_" + i.ToString() + ".checked) {flag=true;}") Next strScript.Append(newLine) strScript.Append("if(!flag) {args.IsValid = false;") strScript.Append(newLine) strScript.Append("}") strScript.Append(newLine) strScript.Append("else") strScript.Append(newLine) strScript.Append("{args.IsValid = true;") strScript.Append(newLine) strScript.Append("}") strScript.Append(newLine & "}" & newLine & "}" & newLine) strScript.Append("</script>") Return strScript.ToString End Function
0
相关文章