TreeView 创建树

来源:互联网 发布:微信外卖订餐系统源码 编辑:程序博客网 时间:2024/05/16 08:27

//调用

 // 加载时显示数据
            DataTable dt = CreateTestData();
            //从数据库中查询出数据并以此数据创建树
            this.CreateTreeNode(this.tevBookClass.Nodes, dt, null);

 

/// <summary>
    /// 创建树
    /// </summary>
    /// <param name="nodes">控件名</param>
    /// <param name="dt">绑定表</param>
    /// <param name="curID">null</param>
    private void CreateTreeNode(TreeNodeCollection nodes, DataTable dt, string curID)
    {
            //清空树中所有节点,以免出现重复显示的树节点
            nodes.Clear();

            // 创建一个空行记录
            DataRow[] rows = null;
            if (curID == null)
            {
                //查询出该树最上面一层的节点
                rows = dt.Select("[PARENT_CODE] = ''");//"[PARENT_CODE] is null"
            }
            else
            {
                //取出以该节点为父节点的所有节点
                rows = dt.Select("[PARENT_CODE] = '" + curID + "'");
           
            }

            // 循环赋值
            foreach (DataRow row in rows)
            {
                //添加树的节点
                TreeNode node = new TreeNode();
                node.Value = row["CHILD_CODE"].ToString();
                node.Text = row["CHILD_NAME"].ToString();
                nodes.Add(node);
               
                //递归调用,创建树
                this.CreateTreeNode(node.ChildNodes, dt, node.Value);

            }
    } 

 

  /// <summary>
    /// 创建一空数据表,使gridview显示出来
    /// </summary>
    /// <returns></returns>
    private DataTable CreateTestData()
    {
        FacadeS0101 getMessage = new FacadeS0101();
       
        //创建表的实例
        DataTable dt = new DataTable();
        DataTable table = new DataTable();

        //给该表添加列
        table.Columns.Add("CHILD_CODE");
        table.Columns.Add("PARENT_CODE");
        table.Columns.Add("CHILD_NAME");

        //取得数据源
        dt = getMessage.SelectMark();

        //循环赋值
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            //添加数据到tablerow
            table.Rows.Add(new object[] { dt.Rows[i]["CHILD_CODE"].ToString(),
                          dt.Rows[i]["PARENT_CODE"].ToString(), dt.Rows[i]["CHILD_NAME"].ToString() });
        }
        table.AcceptChanges();

        //返回数据表
        return table ;
    }

 

/////html代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>营销分类选择</title>
     <base target="_self"/>
</head>
<script language ='javascript' type='text/javascript'>
function OnTreeNodeChecked()
{
var ele = event.srcElement;
if(ele.type=='checkbox')
{
var childrenDivID = ele.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID);
if(div==null)return;
var checkBoxs = div.getElementsByTagName('INPUT');
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
checkBoxs[i].checked=ele.checked;
}
}
}
</script>
<body>
    <form id="form1" runat="server">
    <div align ="center">
        <asp:TreeView ID="tevBookClass" runat="server" ShowCheckBoxes ="All" OnClick="OnTreeNodeChecked()" Width="239px" >
        </asp:TreeView>
        <br />
        <asp:Button ID="btnOk" runat="server" OnClick="btnOk_Click" Text="确 定" Width="60px" />
        &nbsp;
        <asp:Button ID="btnCancel" runat="server" OnClick="btnCancel_Click" Text="取 消" Width="60px" /></div>
    </form>
</body>
</html>

原创粉丝点击