Front Code
Copy Code code as follows:
<script type= "Text/javascript" >
Client Capture Event
function Checkevent () {
var objnode = event.srcelement;
if (Objnode.tagname = = "INPUT" && objnode.type = = "checkbox") {
var objparentdiv = objNode.id.replace ("CheckBox", "Nodes");
if (objnode.checked = = True) {
Setchildcheckstate (Objparentdiv, true);
Setparentcheckestate (Objnode, true);
}
else {
Setchildcheckstate (Objparentdiv, false);
if (! Hasotherchecked (Objnode)) {
Setparentcheckestate (Objnode, false);
}
}
}
}
Determine if there are other nodes in parallel that are selected
function hasotherchecked (objnode) {
var objparentdiv = Webform_getparentbytagname (Objnode, "div");
var chks = objparentdiv.getelementsbytagname ("INPUT");
for (var i = 0; i < chks.length; i++) {
if (chks[i].checked && chks[i].id!= objnode.id) {
return true;
}
}
return false;
}
Set parent node
function Setparentcheckestate (Objnode, chkstate) {
try {
var objparentdiv = Webform_getparentbytagname (Objnode, "div");
if (Objparentdiv = null | | objparentdiv = = "undefined") {
Return
}
else {
var objparentchkid = objParentDiv.id.replace ("Nodes", "checkbox");
var objparentcheckbox = document.getElementById (Objparentchkid);
if (Objparentcheckbox) {
objparentcheckbox.checked = chkstate;
Setparentcheckestate (Objparentdiv, chkstate);
}
}
}
catch (e) {}
}
Set child nodes
function Setchildcheckstate (Nodeid, chkstate) {
var node = document.getElementById (Nodeid);
if (node) {
var chks = node.getelementsbytagname ("INPUT");
for (var i = 0; i < chks.length; i++) {
chks[i].checked = chkstate;
}
}
}
</script>
<body>
<form id= "Form1" runat= "Server" >
<asp:treeview id= "TreeView1" runat= "Server" showcheckboxes= "All" onclick= "checkevent ()" >
</asp:TreeView>
</form>
</body>
Background code:
Copy Code code as follows:
private void Bindgrid ()
{
DataTable mytable = Menutablebll.getalllist (). Tables[0]; Get Data
Createtree (MyTable, Treeview1.nodes, "0");
}
private void Createtree (DataTable dtnodesets, treenodecollection node, string parent_id)
{
DataView dvlist = new DataView (dtnodesets);
Dvlist.rowfilter = "Meunparentid =" + parent_id;
TreeNode nodetemp;
foreach (DataRowView dv in dvlist)
{
Nodetemp = new TreeNode ();
Nodetemp.text = dv["MenuName"]. ToString ();
Nodetemp.expanded = true;
Nodetemp.tooltip = dv["Meunid"]. ToString ();
Node. ADD (nodetemp);
Createtree (Dtnodesets, Nodetemp.childnodes, dv["Meunid"). ToString ());
}
}