c# – Treeview验证

树视图有叶节点复选框.我需要验证树视图
如果检查了至少一个节点并且不超过用户可以选择的特定(例如3个节点)节点数.
注意:Treeview是一个asp.net树视图(不是ajax树视图)

解决方法:

好吧,既然你没有提到你想要什么类型的验证,我会做客户端和服务器端.我的TreeView被命名为tvTest
首先,向您添加一个CustomValidator Asp.Net页面:

<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="ClientValidate"
  ErrorMessage="CustomValidator" Display="Dynamic" OnServerValidate="CustomValidator1_ServerValidate">*</asp:CustomValidator>

注意:不要设置ControlToValidate属性.
接下来,添加此脚本(也是您的Asp.Net页面)以进行客户端验证:

<script type="text/javascript">

  function ClientValidate(source, arguments) {
    var treeView = document.getElementById("<%= tvTest.ClientID %>");
    var checkBoxes = treeView.getElementsByTagName("input");
    var checkedCount = 0;
    for (var i = 0; i < checkBoxes.length; i++) {
      if (checkBoxes[i].checked) {
        checkedCount++;
      }
    }
    if (checkedCount > 0 && checkedCount < 4) {
      arguments.IsValid = true;
    } else {
      arguments.IsValid = false;
    }
  }        

</script>

最后,将此添加到服务器端验证的代码隐藏中:

protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) {
  if (tvTest.CheckedNodes.Count > 0 && tvTest.CheckedNodes.Count < 4) {
    args.IsValid = true;
  } else {
    args.IsValid = false;
  }
}

当然,您需要更改用户可以检查的最小和最大节点数的限制.

上一篇:WinForm控件之【TreeView】


下一篇:java – TreeView – 如何计算所有子项(包括折叠)