绑定生成一个有树结构的下拉菜单


        ///   <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> 

        #region private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)

        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--;
        }

        #endregion private void MakeTree(DataTable dtNodeSets, string strParentColumn, string strRootValue, string strIndexColumn, string strTextColumn, DropDownList drpBind, int i)

 

转载于:https://www.cnblogs.com/chirifengye/p/3192782.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值