zoukankan      html  css  js  c++  java
  • ASP.NET中递归绑定DDL下拉控件

    做个记录,省得以后用到的时候都得再找以前写的代码,而且发现以前写的代码还有点错误的,但层级达到3层以上的时候就看得出错误在哪了,下面是更正后的代码:

    代码
    // 绑定行政区域下拉列表
    private void BindAreaDDL()
    {
        ddl行政区域.Items.Clear();
        ddl行政区域.Items.Insert(
    0new ListItem("""0"));
        DataSet ds 
    = new S_Area2DAO().GetList("");
        
    if (ds.Tables.Count > 0)
        {
            var query1 
    = ds.Tables[0].AsEnumerable().Where(x => x["parentid"].ToString() == "0");
            
    foreach (var item in query1)
            {
                ListItem li 
    = new ListItem(item["name"].ToString(), item["id"].ToString());
                ddl行政区域.Items.Add(li);
                
    int index = 1;
                AddChildListItem(ds, item[
    "id"].ToString(), index);
            }
        }
    }
    // 递归添加子项
    private void AddChildListItem(DataSet ds, string pid, int index)
    {
        
    int tmp = index;  // 保存层级
        
    // 计算前面的空白
        string space_str = "";
        
    for (int i = 0; i < index; i++)
        {
            space_str 
    += "...";
        }


        var query1 
    = ds.Tables[0].AsEnumerable().Where(x => x["parentid"].ToString() == pid);
        
    foreach (var item in query1)
        {
            ListItem li 
    = new ListItem(space_str + item["name"].ToString(), item["id"].ToString());
            ddl行政区域.Items.Add(li);
            index
    ++;
            AddChildListItem(ds, item[
    "id"].ToString(), index);
            index 
    = tmp;  // 还原层级
        }
    }
    撸码:复制、粘贴,拿起键盘就是“干”!!!
  • 相关阅读:
    第四周作业
    第三周作业
    第二周作业
    互联网公司采用增量模型做开发的优势
    面向过程分析方法与面向对象分析方法到底区别
    项目测试中的黑盒测试和白盒测试
    立项说明书里面的项目概述。
    项目开发中的一些问题
    面向对象之我见
    [自翻]fasthttp中文文档(持续更新)
  • 原文地址:https://www.cnblogs.com/niunan/p/1791522.html
Copyright © 2011-2022 走看看