我有个树,要根据一个编码规则来形成,如果编号是二位的长度,则是父节点如果编号是四位长度,则是子节点。这样,怎么生成一个树?树旁边有一个复选框怎么判断选择的是哪一个?

解决方案 »

  1.   

    思路:
    判断字串长度
    2 -> 新节点加入到root下
    4 -> 新节点加入到已存在节点下
      

  2.   

    认真看看Tree的属性,在随着楼上的思路,你能写出来的。
      

  3.   

    判断字串长度
     TreeNode open = new TreeNode();
     open.Value = "11";
     open.Text = "11";
     TreeView1.Nodes.Add(open); ---父节点
        TreeNode temp = new TreeNode();
        temp.Text = "1111";
        open.ChildNodes.Add(temp); ---子节点
    不过不清楚你的子节点只是加到父节点就OK呢,还是有其他要求 比如 11(父节点)--- 1111 (子节点) 
                                                            22 ---- 222 
    选择的话可以通过JS来实现
    <script language="javascript" type="text/javascript">
    function client_OnTreeNodeChecked()
    {
    var obj = window.event.srcElement;
    var treeNodeFound = false;
    var checkedState;
    if (obj.tagName == "INPUT" && obj.type == "checkbox") {
    var treeNode = obj;
    checkedState = treeNode.checked;
    do
    {
    obj = obj.parentElement;
    } while (obj.tagName != "TABLE")
    var parentTreeLevel = obj.rows[0].cells.length;
    var parentTreeNode = obj.rows[0].cells[0];
    var tables = obj.parentElement.getElementsByTagName("TABLE");
    var numTables = tables.length
    if (numTables >= 1)
    {
    for (i=0; i < numTables; i++)
    {
    if (tables[i] == obj)
    {
    treeNodeFound = true;
    i++;
    if (i == numTables)
    {
    return;
    }
    }
    if (treeNodeFound == true)
    {
    var childTreeLevel = tables[i].rows[0].cells.length;
    if (childTreeLevel > parentTreeLevel)
    {
    var cell = tables[i].rows[0].cells[childTreeLevel - 1];
    var inputs = cell.getElementsByTagName("INPUT");
    inputs[0].checked = checkedState;
    }
    else
    {
    return;
    }
    }
    }
    }
    }
    }
    </script> ------这段选中了树中所选择的复选框 (包括父节点和子节点)
    其次是
     foreach (TreeNode node in TreeView1.CheckedNodes)
                {
                    this.Lb_Object.Items.Add(new ListItem(node.Text.Trim(), node.Value));
                }
    我加到一个listbox 中 在这里你可以判断是父节点还是子节点
    有点麻烦 ~~~~~~~~~~~~~~呵呵
      

  4.   

    上楼和回答很不错啊
    可惜我要的是winform中的树形结构处理啊!
      

  5.   

    自己再顶下,等高手来楼上的不错可是我要Winform的啊唉!