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;  // 还原层级
        }
    }
    撸码:复制、粘贴,拿起键盘就是“干”!!!
  • 相关阅读:
    golang1.8
    用jmeter测试mogonDd数据库
    Memcache课程
    appium 处理滑动的方法
    【MVC 2】MVC+EF框架结构实例:注册ID号验证
    【Ajax 3】JavaScript封装Ajax
    【Ajax 2】封装Ajax的核心对象:XMLHttpRequest对象
    【Ajax 1】Ajax与传统Web开发的区别
    【软工7】软件工程中的文档
    【软考10】计算机网络基础知识拾遗
  • 原文地址:https://www.cnblogs.com/niunan/p/1791522.html
Copyright © 2011-2022 走看看