/// <summary> /// 绑定下拉框 /// </summary> /// <param name="ddl">绑定控件名称</param> /// <param name="dt">绑定的数据源</param> /// <param name="categoryid">父级id值</param> /// <param name="layer">缩进种子</param> /// <param name="parentId">父级ID列名</param> /// <param name="name">需要显示text列名</param> /// <param name="id">需要绑定value的列名</param> private void BindChannelType(DropDownList ddl, DataTable dt, string categoryid, int layer, string parentId, string name, string id) { DataView dv = new DataView(dt); dv.RowFilter = parentId + "='" + categoryid + "'"; //过滤 if (categoryid != "0") { layer++; //默认为第一层 } foreach (DataRowView drv in dv) { string span = ""; if (categoryid != "0") { for (int i = 0; i < layer; i++) //父级菜单不缩进 { span += " "; } } ListItem li = new ListItem(); li.Text = span + drv[name].ToString(); li.Value = drv[id].ToString(); ddl.Items.Add(li); BindChannelType(ddl, dt, drv[id].ToString(), layer, parentId, name, id); } }