ASP.NET中递归绑定DDL下拉控件

简介: 做个记录,省得以后用到的时候都得再找以前写的代码,而且发现以前写的代码还有点错误的,但层级达到3层以上的时候就看得出错误在哪了,下面是更正后的代码:代码// 绑定行政区域下拉列表private void BindAreaDDL(){    ddl行政区域.

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

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
//  绑定行政区域下拉列表
private   void  BindAreaDDL()
{
    ddl行政区域.Items.Clear();
    ddl行政区域.Items.Insert(
0 new  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;   //  还原层级
    }
}

 

 

目录
相关文章
|
2月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
34 0
|
3月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
29 0
|
4月前
|
开发框架 .NET 数据安全/隐私保护
Asp.Net第二章服务器端控件
Asp.Net第二章服务器端控件
27 0
|
4月前
|
开发框架 JavaScript .NET
Asp.Net就业课之三验证控件
Asp.Net就业课之三验证控件
44 0
|
4月前
|
开发框架 .NET
Asp.Net就业课堂之模板控件
Asp.Net就业课堂之模板控件
38 1
|
10月前
|
开发框架 JavaScript .NET
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...(续)
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...(续)
88 0
|
10月前
|
开发框架 JavaScript 前端开发
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...
62 0
|
10月前
|
开发框架 .NET C++
【asp.net】控件
【asp.net】控件
68 0
|
11月前
|
开发框架 .NET 数据安全/隐私保护
ASP.NET验证控件合集 含代码演示
ASP.NET验证控件合集 含代码演示
|
SQL 开发框架 .NET
在ASP.NET中使用ListView控件对数据进行显示、分页和排序
在ASP.NET中使用ListView控件对数据进行显示、分页和排序
在ASP.NET中使用ListView控件对数据进行显示、分页和排序