zoukankan      html  css  js  c++  java
  • 下拉框绑定树形结构

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

  • 相关阅读:
    白兔的字符串(字符串hash+模拟map)
    [TJOI2013]单词(AC自动机+前缀和维护)
    [SDOI2014]数数(ac自动机+数位DP)
    阿狸的打字机(AC自动机+dfs序 + 维护区间值)
    string(AC自动机 在线询问转离线询问)
    E
    JMX超详细解读
    快速生成100万数据人员信息数据
    聊聊spring之bean对象的实例化过程
    聊聊spring之贯穿全局的重要对象BeanDefinition
  • 原文地址:https://www.cnblogs.com/zgaspnet/p/2145956.html
Copyright © 2011-2022 走看看