项目中需要动态生成菜单,于是写了个简单的c#代码示例,有待进一步完善:
DataSet ds = new DataSet();
DataTable dt = new DataTable(); dt.Columns.Add("Code"); dt.Rows.Add("1000"); dt.Rows.Add("10001000"); dt.Rows.Add("100010001000"); dt.Rows.Add("100010001001"); dt.Rows.Add("10001001"); dt.Rows.Add("100010011000"); dt.Rows.Add("100010011001"); dt.Rows.Add("10001002"); dt.Rows.Add("100010021000"); dt.Rows.Add("100010021001"); ds.Tables.Add(dt);for (int i = 1; i < ds.Tables[0].Rows.Count; i++)
{ MenuItem mi = new MenuItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString(), "", ""); for (int j = i+1; j < ds.Tables[0].Rows.Count; j++) { if (ds.Tables[0].Rows[i][0].ToString().Length < ds.Tables[0].Rows[j][0].ToString().Length) { MenuItem mi1 = new MenuItem(ds.Tables[0].Rows[j][0].ToString(), ds.Tables[0].Rows[i][0].ToString(), "", ""); mi.ChildItems.Add(mi1); if (j==ds.Tables[0].Rows.Count-1) { i = j; } } else { i = j - 1; break; } } Menu1.Items.Add(mi); }