using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.Data;
using System.Linq.Dynamic;
public partial class _Default : System.Web.UI.Page
{
Model.DataClasses dal = new Model.DataClasses();
protected void Page_Load(object sender, EventArgs e)
{
List<Model.T_BaseTypes> dt = dal.T_BaseTypes.ToList();
CreateLevelDropDown(ddlBaseTypes,dt);
}
/// <summary>
/// 创建分级下拉框
/// </summary>
private void CreateLevelDropDown(DropDownList ddlst, List<Model.T_BaseTypes> list)
{
ArrayList allItems = new ArrayList();
List<Model.T_BaseTypes> rows = list.Where(c=>c.BT_ParentID==0).ToList();
foreach (Model.T_BaseTypes row in rows)
CreateLevelDropDownAssistant(list, ref allItems, row, string.Empty);
ListItem[] items = new ListItem[allItems.Count];
allItems.CopyTo(items);
ddlst.Items.AddRange(items);
}
private void CreateLevelDropDownAssistant(List<Model.T_BaseTypes> list, ref ArrayList items, Model.T_BaseTypes row, string curHeader)
{
ListItem newItem = new ListItem(curHeader + row.BT_Name, row.BT_ID.ToString());
items.Add(newItem);
list.Remove(row);
List<Model.T_BaseTypes> list2 = list.Where(a => a.BT_ParentID == row.BT_ID).ToList();
for (int i = 0; i < list2.Count- 1; i++)
CreateLevelDropDownAssistant(list, ref items, list2[list2.Count-1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┣");
if (list2.Count > 0)
CreateLevelDropDownAssistant(list, ref items, list2[list2.Count - 1], curHeader.Replace("┣", "┃").Replace("┗",
"┣") + "┗");
}
}