树形dropdownlist绑定N级例子
解决方案 »
- 数据库更新时内容截断
- 请教VS平台下的一个小问题
- 求一个正则表达式
- 错误 3 命名空间“System”中不存在类型或命名空间名称“DataRowView”(是缺少程序集引用吗?)
- asp.net各位帮忙看哪里错了???
- 疑问:粘帖出来的代码
- 编译器错误消息: CS0260: 类型“UDS.Inc.ClassTreeView”的声明上缺少 partial 修饰符;存在此类型的其他分部声明
- 关于iframe的问题请教 是高手的进来帮帮
- 如何在textarea里显示html文本?
- 如何将vs2005 asp .net项目中默认的用户角色数据库aspnetdb.mdf连接换成本地的sql server 2000数据库中的自定义的用户角色表??
- 高手进:关于.net的数据库连接问题
- 用户留言时,怎么能获得用户的系统时间.并返回到服务器追加到留言里?
if(dt.Rows.Count>0)
{
foreach(DataRow row in dt.Rows)
{
if(row["Pid"].ToString().Trim()=="0")//绑定根节点
{
this.DropDownList1.Items.Add(new ListItem(row["deptname"].ToString(),row["deptid"].ToString()));
this.bindDropChildItem(this.DropDownList1,dt,row["deptid"].ToString(),1);
}
}
}
}
void bindDropChildItem(DropDownList d,DataTable dt,string idstr,int length)
{
DataRow[] rows=dt.Select("Pid='"+idstr+"'","deptid DESC");//取出id子节点进行绑定
for(int i=0;i<rows.Length;i++)
{
this.DropDownList1.Items.Add(new ListItem(this.SpaceLength(length)+rows[i]["deptname"].ToString(),rows[i]["deptid"].ToString()));
this.bindDropChildItem(d,dt,rows[i]["deptid"].ToString(),length+1);//空白数目加1
}
}
string SpaceLength(int i)
{
string space="";
for(int j=0;j<i;j++)
{
space+=" ";//注意这里的空白是智能abc输入法状态下的v11字符;
}
return space;
}
{
DataTable dt = doBind.GetData(BLL_doClass.GetDataSet());
LbClass.Items.Add(new ListItem("根目录","0"));
Recursion(0,0,0,null,null,dt);
LbClass.SelectedValue = Rtp.Text;}private void Recursion(int id,int pid,int level, string strName,string strRtp,DataTable dt)
{
DataRow[] drs = dt.Select("ID=" + id);
string currentString = GetDecorateString(level,strName);
if (drs.Length != 0)
{
LbClass.Items.Add(new ListItem(currentString,strRtp));
}
drs = dt.Select("ParentID=" + id);if (drs.Length != 0)
{
level++;
foreach (DataRow dr in drs)
{
Recursion((int)dr["ID"],(int)dr["PrefaceID"], level,dr["Name"].ToString(),dr["Rtp"].ToString(), dt);
}
}
else
{
return;
}
}
private string GetDecorateString(int level, string strName)
{
string curentString = null;
if (level != 1)
{
for(int i=1;i<level;i++)
{
curentString += "-";
}
curentString = "| "+curentString+strName;
}
else
{
curentString = strName;
}return curentString;
}
id name pid
1 11 0
2 22 1
3 33 2如果直接加绑ID=2,会不会出错