控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

下拉框绑定树形结构

作者:佚名 出处:互联网 2011年08月26日 阅读:

下拉框绑定树形结构

///   <summary>
        ///   绑定生成一个有树结构的下拉菜单
        ///   </summary>
        ///   <param   name= "dtNodeSets "> 菜单记录数据所在的表 </param>
        ///   <param   name= "strParentColumn "> 表中用于标记父记录的字段 </param>
        ///   <param   name= "strRootValue "> 第一层记录的父记录值(通常设计为0或者-1或者Null)用来表示没有父记录 </param>
        ///   <param   name= "strIndexColumn "> 索引字段,也就是放在DropDownList的Value里面的字段 </param>
        ///   <param   name= "strTextColumn "> 显示文本字段,也就是放在DropDownList的Text里面的字段 </param>
        ///   <param   name= "drpBind "> 需要绑定的DropDownList </param>
        ///   <param   name= "i "> 用来控制缩入量的值,请输入-1 </param>
        private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)
        {
            //每向下一层,多一个缩入单位
            i++;

            DataView dvNodeSets = new DataView(dtNodeSets);
            dvNodeSets.RowFilter = strParentColumn + "= " + strRootValue;

            string strPading = " ";     //缩入字符

            //通过i来控制缩入字符的长度,我这里设定的是一个全角的空格
            for (int j = 0; j < i; j++)
                strPading += " ";//如果要增加缩入的长度,改成两个全角的空格就可以了

            foreach (DataRowView drv in dvNodeSets)
            {
                //TreeNode tnNode = new TreeNode();
                ListItem li = new ListItem(strPading + "├ " + drv[strTextColumn].ToString(), drv[strIndexColumn].ToString());
                drpBind.Items.Add(li);
                MakeTree(dtNodeSets, strParentColumn, drv[strIndexColumn].ToString(), strIndexColumn, strTextColumn, drpBind, i);
            }

            //递归结束,要回到上一层,所以缩入量减少一个单位
            i--;
        }

MakeTree(dt, "parentid", "0", "id", "name", ddlSite, -1);
下拉框绑定树形结构数据库表设计模式(0代表根目录,北京 1 代表是中国下面的子节点,1是 中国 id编号)
id   name    parentid
---------------------
-1  中国       0
-2  北京      -1
-3  广东      -1
-4  美国       0
-5  潮州      -3
-6  汕头      -3
-7  夏威夷    -4

 

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统