关于树型dropdownlist的绑定
来源:互联网 发布:string转map java 编辑:程序博客网 时间:2024/05/21 08:59
开发产品的时候,需要用到树性的dropdownlist,于是在网上找方法,找了很多,都不是很有效,于是自己写了个!
首先设计好数据库,假设数据库有三个字段Id,ParentId,Name。ParentId是树性结构必须的,就是节点的父节点id,假设跟节点id都是0。下面就可以绑定了!
思路应该很简单,就是先绑定根节点,再循环绑定子节点!父节点和子节点之间为了显示出层次结构,用空格格开,不过不是space键,没用的,必须用v1的特殊字符1。
/// <summary>
/// 绑定根节点
/// </summary>
void bindGroup()
{
DataTable dt =//获取所有节点
if(dt.Rows.Count>0)
{
foreach(DataRow row in dt.Rows)
{
if(row["ParentId"].ToString().Trim()=="0")//绑定根节点
{
this.drpItGroup.Items.Add(new ListItem(row["Name"].ToString(),row["Id"].ToString()));
this.bindDropChildItem(this.drpItGroup,dt,row["Id"].ToString(),1);
}
}
}
}
/// <summary>
/// 绑定子节点
/// </summary>
/// <param name="d"></param>
/// <param name="dt"></param>
/// <param name="id"></param>
/// <param name="length"></param>
void bindDropChildItem(DropDownList d,DataTable dt,string id,int length)
{
DataRow[] rows=dt.Select("ParentId='"+id+"'","Id DESC");//取出id子节点进行绑定
for(int i=0;i<rows.Length;i++)
{
this.drpItGroup.Items.Add(new ListItem(this.SpaceLength(length)+rows[i]["Name"].ToString(),rows[i]["Id"].ToString()));
this.bindDropChildItem(d,dt,rows[i]["Id"].ToString(),length+1);//空白数目加1
}
}
/// <summary>
/// 子节点前面的空白数
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
string SpaceLength(int i)
{
string space="";
for(int j=0;j<i;j++)
{
space+=" ";//注意这里的空白是智能abc输入法状态下的v11字符;
}
return space;
}
这样就大功告成了,绑定一下就可以看到效果了!还可以在客户端进行添加节点,方法相似!
- 关于树型dropdownlist的绑定
- 关于树型dropdownlist的绑定
- 关于树型dropdownlist的绑定
- 关于树型dropdownlist的绑定
- 关于树型dropdownlist的绑定
- 关于DropDownList绑定数据的一点认识
- 关于DropDownList绑定数据的一点认识
- 关于DropDownList空间的绑定问题
- 关于gridview和dropdownlist的数据绑定
- DropDownList 的数据绑定
- 树型dropdownlist的绑定
- dropdownlist值的绑定
- DropDownList绑定的问题
- DropDownList的绑定数据
- 关于DropDownList绑定SqlDataSource数据源
- 关于DropDownList绑定数据的一点认识(原创)
- 关于dropdownlist的一个空格绑定问题(菜鸟)
- 关于DropDownList绑定数据后,怎么添加另外的默认值
- Visual C++ 学习笔记( 一 ) C++ 入门(转rockybug)
- 关于先进先出成本计算2
- linux Rehat as 4 的lamp环境配置过程(自己的过程记录)
- automation 服务器不能创建对象解决方式
- Visual C++ 学习笔记( 二 ) 基本数据类型与输入输出 (转rockybug)
- 关于树型dropdownlist的绑定
- 小诗一首--在30高考之日感慨一下
- Visual C++ 学习笔记(三)表达式和语句 (转rockybug)
- 平时遇到的笑话
- 用脚本控件服务器端Panel
- vs 2005 快捷键
- .net 中进制转换
- int 与 Integer 数据类型之间的关系
- Visual C++ 中调用其他应用程序的方法(函数) (转rockybug)