Skip to content Skip to sidebar Skip to footer

Treeview Validation

The treeview has leaf node checkboxes.I need to validate the treeview if atleast one of the node is checked and not more than a specfic(say 3 nodes) number of nodes a user can sel

Solution 1:

Alright, since you didn't mentioned what type of validation you want, I'll do both client side and server side. My TreeView is named tvTest First, add a CustomValidator to you Asp.Net page:

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

Note: don't set the ControlToValidate property. Next, add this script (also to your Asp.Net page) for client side validation:

<scripttype="text/javascript">functionClientValidate(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>

And last, add this to your code-behind for server side validation:

protectedvoidCustomValidator1_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;
  }
}

Of course, you'll want to change the limits for the minimum and maximum number of nodes the user can check.

Post a Comment for "Treeview Validation"