asp.net 如何实现:点击dropdownlist,下拉框显示类似treeview的节点树,可用鼠标选择节点
解决方案 »
- 一个关于清空cookies的求助,急用
- 为什么设置了自动分页的GridView放到if(IsPostBack)里换页时变成了空白?
- 请教教我,如何才能在浏览器(IE)界面的窗口内运行外部 *.exe 程序?
- 帮我看看这个是什么意思??谢谢
- treeview
- sql数据库同一表 多字段求和 输出
- 高手解释,http://localhost:52996/#/Getting_Started/Introduction/Overview/
- 谁写过毕业论文啊
- asp.net 打印gridview中的指定行列
- 急救!第一句就出错~~~~
- 突然发现,单引号!
- 求解SqlDataAdapter.Update()的用法。
dropDownList1.items.add(new listitem("→子节点", "0"));
dropdownlist实现树型结构的栏目信息 /// <summary>
/// 递归绑定数据到ddlChannelList控件上,形成树状结构
/// </summary>
/// <param name="dt">数据源</param>
/// <param name="categoryid">栏目id</param>
private void BindToChannelList(DataTable dt, int categoryid)
{
//DataView dv = dt.DefaultView;使用这句在asp.net 1.1中会出现"在位置 1 处没有任何行。"的错误,感谢阿耀同学的帮助.
DataView dv=new DataView(dt);
dv.RowFilter = " ParentID= " + categoryid.ToString(); //过滤
int layer = 0; //默认为第一层
foreach (DataRowView drv in dv)
{
layer = int.Parse(drv["Layer"].ToString().Trim()); //取得第几层
string span = "";
if (categoryid != 0)
{
for (int i = 0; i < layer; i++)
{
span += " ";
}
span += "|╴";//添加前面的空格
}
ListItem li = new ListItem();
li.Text = span + drv["CategoryName"].ToString();
li.Value = drv["CategoryID"].ToString();
this.ddlChannelList.Items.Add(li);
BindToChannelList(dt, Convert.ToInt32(drv["CategoryID"]));
}
}
详细参考..
http://www.cnblogs.com/xiaoxijin/archive/2008/10/28/1321195.html
JQuery 也能实现你要的效果~
{
public DDLDepartment()
{
bind(this, 0);
this.Items.Insert(0, new ListItem("==请选择==", ""));
}
public void bind(DropDownList ddlDepartment, int parent)
{
IList<Department> deptlist = DepartmentBLL.SelectChild(parent);
foreach (Department dept in deptlist)
{
string text = new string(' ', dept.Depth - 1);
text += "└" + dept.DeptName;
ddlDepartment.Items.Add(new ListItem(text, dept.DeptId.ToString()));
bind(this, dept.DeptNo);
}
}
public bool Blank
{
set
{
if (value == false) this.Items.RemoveAt(0);
}
}
}
http://www.codeproject.com/KB/webforms/ASTreeView.aspx