DropDownList 中显示树形结构内容
如图显示:
页面代码(为了简洁点,只写一个下拉控件):
<asp:DropDownList ID="ddlPrent" runat="server" Width="200px"></asp:DropDownList>
后台代码:
#region 绑定菜单
private void BindTree()
{
var sm = new IME.BLL.Sys_Function_Menu();
DataTable dt = sm.GetList("").Tables[0];
this.ddlPrent.Items.Clear();
//加载树
this.ddlPrent.Items.Add(new ListItem("根目录", "0"));
DataRow[] drs = dt.Select("ParentId= 0");
foreach (DataRow r in drs)
{
string nodeid = r["MenuId"].ToString();
string text = r["MenuName"].ToString();
text = "╋" + text;
this.ddlPrent.Items.Add(new ListItem(text, nodeid));
int sonparentid = int.Parse(nodeid);
string blank = "├";
BindNode(sonparentid, dt, blank);
}
this.ddlPrent.DataBind();
}
private void BindNode(int parentid, DataTable dt, string blank)
{
DataRow[] drs = dt.Select("ParentId= " + parentid);//父菜单Id
foreach (DataRow r in drs)
{
string nodeid = r["MenuId"].ToString();//菜单Id
string text = r["MenuName"].ToString();//菜单名称
text = blank + "『" + text + "』";
this.ddlPrent.Items.Add(new ListItem(text, nodeid));
int sonparentid = int.Parse(nodeid);
string blank2 = blank + "─";
BindNode(sonparentid, dt, blank2);
}
}
#endregion