Source Code:
#region "menu 分层菜单的数据库 SQL SERVER 2000 绑定的操作"
protected void initMenu() { DataTable dt = GetViewTable(); DataView dv = new DataView(dt); dv.RowFilter = "TreeParentID='0'"; string strMLinkL = "";
foreach (DataRowView drv in dv) {
strMLinkL = drv["MLinkL"].ToString().Trim();
MenuItem node = new MenuItem(); node.Text = drv["TreeName"].ToString(); node.Value = drv["TreeValue"].ToString(); node.NavigateUrl = drv["TreeLink"].ToString().Trim()+"?strMLinkL="+strMLinkL; node.ImageUrl = drv["TreeIco"].ToString().Trim(); node.Target = drv["TreeStr"].ToString(); Menu1.Items.Add(node);
// AddNodes(dt, node); // 子节点 }
}
protected DataTable GetViewTable() { string strConn = "server =.;uid =sa;pwd =;database =Aspnet"; SqlConnection myConn = new SqlConnection(strConn); string strSql = "select * from MenuTb "; SqlDataAdapter myDa = new SqlDataAdapter(strSql, myConn); DataTable dt = new DataTable(); myDa.Fill(dt); return dt;
}
/// <summary> /// 子节点添加 /// </summary> /// <param name="dt">数据表</param> /// <param name="pNode"></param> protected void AddNodes(DataTable dt, MenuItem pNode) { DataView dv = new DataView(dt); dv.RowFilter = "TreeParentID ='" + pNode.Value+"'"; foreach (DataRowView drv in dv) { MenuItem menuNode = new MenuItem(); menuNode.Value = drv["TreeValue"].ToString(); menuNode.Text = drv["TreeName"].ToString(); menuNode.ImageUrl = drv["TreeIco"].ToString().Trim(); menuNode.NavigateUrl = drv["TreeLink"].ToString().Trim(); menuNode.Target = drv["TreeStr"].ToString(); pNode.ChildItems.Add(menuNode);
//loop循环 AddNodes(dt, menuNode);
}
} #endregion
}
DataBase Design :
1 ID int 4 0 0 TreeParentID char 20 1 0 TreeValue char 20 1 0 TreeName char 20 1 0 TreeLink nvarchar 50 1 0 TreeStr varchar 50 1 0 TreeIco char 20 1 0 MLinkL char 20 1
(Notes: the First 1 or 0 mean: 1: mark is yes ;
the Next 1 or 0 mean : 0: not allow null)
|