private void BindAreaDDL() { ddl行政区域.Items.Clear(); ddl行政区域.Items.Insert(0, new ListItem("", "0")); DataSet ds = new S_Area2DAO().GetList(""); if (ds.Tables.Count > 0) { var query1 = ds.Tables[0].AsEnumerable().Where(x => x["parentid"].ToString() == "0"); foreach (var item in query1) { ListItem li = new ListItem(item["name"].ToString(), item["id"].ToString()); ddl行政区域.Items.Add(li); int index = 1; AddChildListItem(ds, item["id"].ToString(), index); } } }
// 递归添加子项
private void AddChildListItem(DataSet ds, string pid, int index) { int tmp = index; // 保存层级 // 计算前面的空白 string space_str = ""; for (int i = 0; i < index; i++) { space_str += "..."; } var query1 = ds.Tables[0].AsEnumerable().Where(x => x["parentid"].ToString() == pid); foreach (var item in query1) { ListItem li = new ListItem(space_str + item["name"].ToString(), item["id"].ToString()); ddl行政区域.Items.Add(li); index++; AddChildListItem(ds, item["id"].ToString(), index); index = tmp; // 还原层级 } }