树形视图验证

3
树形视图有叶节点复选框。 我需要验证树形视图,确保至少有一个节点被选中,并且用户可以选择的节点数量不超过指定数量(例如3个节点)。 注意:树形视图是asp.net树形视图(不是ajax树形视图)。
1个回答

11

好的,既然你没有提到需要什么类型的验证,我将为你介绍客户端和服务器端的两种验证方式。我的 TreeView 名称为 tvTest
首先,在你的 Asp.Net 页面上添加一个 CustomValidator:

<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;
  }
}
当然,您会想要更改用户可以选择的节点数量的最小值和最大值限制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接