Refer the below sample code for your reference and implement it as per your code logic.
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All">
</asp:TreeView>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("[id*=TreeView1] input[type=checkbox]").bind("click", function () {
var table = $(this).closest("table");
if (table.next().length > 0 && table.next()[0].tagName == "DIV") {
//Is Parent CheckBox
var childDiv = table.next();
var isChecked = $(this).is(":checked");
$("input[type=checkbox]", childDiv).each(function () {
if (isChecked) {
$(this).attr("checked", "checked");
} else {
$(this).removeAttr("checked");
}
});
} else {
//Is Child CheckBox
var parentDIV = $(this).closest("DIV");
if ($("input[type=checkbox]", parentDIV).length == $("input[type=checkbox]:checked", parentDIV).length) {
$("input[type=checkbox]", parentDIV.prev()).attr("checked", "checked");
} else {
$("input[type=checkbox]", parentDIV.prev()).removeAttr("checked");
}
}
});
})
</script>
</div>
<asp:Button ID="Button1" Text="Get Selected" runat="server" OnClick="GetSelected" />
<input id="hfSelected" type="hidden" runat="server" />
</form>
</body>
</html>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeNode treeNode = new TreeNode("Fruits", "Fruits");
treeNode.ShowCheckBox = true;
TreeView1.Nodes.Add(new TreeNode("Fruits", "Fruits"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Mango", "Mango"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Apple", "Apple"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Pineapple", "Pineapple"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Orange", "Orange"));
TreeView1.Nodes[0].ChildNodes.Add(new TreeNode("Grapes", "Grapes"));
TreeView1.Nodes.Add(new TreeNode("Vegetables", "Vegetables"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Carrot", "Carrot"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Cauliflower", "Cauliflower"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Potato", "Potato"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Tomato", "Tomato"));
TreeView1.Nodes[1].ChildNodes.Add(new TreeNode("Onion", "Onion"));
}
}
protected void GetSelected(object sender, EventArgs e)
{
string seleted = "";
for (int i = 0; i < TreeView1.Nodes.Count; i++)
{
for (int j = 0; j < TreeView1.Nodes[i].ChildNodes.Count; j++)
{
if (TreeView1.Nodes[i].ChildNodes[j].Checked)
{
seleted += !string.IsNullOrEmpty(seleted) ? "," + TreeView1.Nodes[i].ChildNodes[j].Text : TreeView1.Nodes[i].ChildNodes[j].Text;
}
}
}
ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('" + "Selected Child :" + seleted + "')", true);
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim treeNode As TreeNode = New TreeNode("Fruits", "Fruits")
treeNode.ShowCheckBox = True
TreeView1.Nodes.Add(New TreeNode("Fruits", "Fruits"))
TreeView1.Nodes(0).ChildNodes.Add(New TreeNode("Mango", "Mango"))
TreeView1.Nodes(0).ChildNodes.Add(New TreeNode("Apple", "Apple"))
TreeView1.Nodes(0).ChildNodes.Add(New TreeNode("Pineapple", "Pineapple"))
TreeView1.Nodes(0).ChildNodes.Add(New TreeNode("Orange", "Orange"))
TreeView1.Nodes(0).ChildNodes.Add(New TreeNode("Grapes", "Grapes"))
TreeView1.Nodes.Add(New TreeNode("Vegetables", "Vegetables"))
TreeView1.Nodes(1).ChildNodes.Add(New TreeNode("Carrot", "Carrot"))
TreeView1.Nodes(1).ChildNodes.Add(New TreeNode("Cauliflower", "Cauliflower"))
TreeView1.Nodes(1).ChildNodes.Add(New TreeNode("Potato", "Potato"))
TreeView1.Nodes(1).ChildNodes.Add(New TreeNode("Tomato", "Tomato"))
TreeView1.Nodes(1).ChildNodes.Add(New TreeNode("Onion", "Onion"))
End If
End Sub
Protected Sub GetSelected(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim seleted As String = ""
For i As Integer = 0 To TreeView1.Nodes.Count - 1
For j As Integer = 0 To TreeView1.Nodes(i).ChildNodes.Count - 1
If TreeView1.Nodes(i).ChildNodes(j).Checked Then
seleted += If(Not String.IsNullOrEmpty(seleted), "," & TreeView1.Nodes(i).ChildNodes(j).Text, TreeView1.Nodes(i).ChildNodes(j).Text)
End If
Next
Next
ClientScript.RegisterClientScriptBlock(Me.[GetType](), "", "alert('" & "Selected Child :" & seleted & "')", True)
End Sub
Screenshot