在DropDownList中显示树形结构

http://blog.csdn.net/xbf321/

在前面做完无限级分类之后,就需要在管理员添加试题了,想了想第一想法就是用TreeView,可是我用的是Vs2003,树型控件是第三方的,也是不好用,管理员录题的时候,选择也是问题,所以第二想法就是在DropDownList中显示树型结构,可是我在原先听说在DropDownLIst显示树形结构,很麻烦,但是由于我在前面用DataGrid显示的时候,那个树形的是自己处理的,这就给我一点点想法,那我可不可以,在我给DropDownList榜定的时候,那个数据源就已经把树形列出来的,那么我绑定的时候那个DataTextValue不就成了树形的吗 ,可是怎么在能在DropDownList绑定的时候的那个数据源已经成树形结构了呢,在网上看看了,突然看到有用临时表的,真是眼前一亮,我给DropDownList绑定临时表多好阿,那个临时表已经成了树形结构了,结合我在前面用DataGrid显示树形的结构,所以就就自己研究了一个在DropDownList中显示树型结构的方法(我现在还不知道别人是不是也用这种做法的^ _ ^), 

首先创建临时表

// Power By 兴百放
//Create Time 2007-5-23
#region
 创建临时表
        
public   static  DataTable CreateTable()
        {
            DataTable dt 
=   new  DataTable();
            dt.Columns.Add(
new  DataColumn( " Column_Id " , typeof ( int )));
            dt.Columns.Add(
new  DataColumn( " Column_Name " , typeof ( string )));
            DataRow dr ;
            
using (SqlDataReader dataReader  =  SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction,CommandType.StoredProcedure, " sp_Column_List " ))
            {
                
while (dataReader.Read())
                {
                    dr 
=  dt.NewRow();
                    dr[
0 =  Convert.ToInt32(dataReader[ " Column_Id " ]);
                    
string  columnName  =  dataReader[ " Column_Name " ].ToString();
                    
string  columnTemp  =   "" ;
                    
int  columnDepth  =  Convert.ToInt32(dataReader[ " Column_Depth " ]);
                    
if (columnDepth > 1 )
                    {
                        
for ( int  i  =   1 ;i < columnDepth;i ++ )
                        {
                            columnTemp 
+= " |-- " ;
                        }
                        columnTemp
+= " |- " ;
                    }
                    dr[
1 =  columnTemp + columnName ;
                    dt.Rows.Add(dr);
                }
                
            }

            
return  dt;

        }
        
#endregion
// Power By 兴百放
//Create Time 2007-5-23

 

上面用到了我前几节写的 ’用存储过程实现无限级分类‘的存储过程sp_Column_List

下面就是DropDownList绑定了

// Power By 兴百放
//Create Time 2007-5-23

#region
  得到分类信息
        
public   static   void  GetCateInfo(System.Web.UI.WebControls.DataGrid dg)
        {
            dg.DataSource
=  SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction,CommandType.StoredProcedure, " sp_Column_List " );
            dg.DataBind();
        }
        
public   static   void  GetCateInfo(System.Web.UI.WebControls.DropDownList dl)
        {
            dl.DataSource
=  Exam.Class.DAL.Category.CreateTable();
            dl.DataTextField
= " Column_Name " ;
            dl.DataValueField 
=   " Column_Id " ;
            dl.DataBind();
        }
        
#endregion
// Power By 兴百放
//Create Time 2007-5-23
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值