[留着备用]ASP.NET动态菜单生成通用方法
#region ASP.NET动态菜单生成通用方法
private void InitTree0(Menu TV,DataSet ds) //根结点加载函数
{
TV.Items.Clear(); //TV为TreeView控件
DataRow[] rows = ds.Tables[0].Select("parent_id=0");
for (int i = 0; i < rows.Length; i++)
{
MenuItem T_root = new MenuItem();
DataRow dr = rows[i];
T_root.Text = dr["menu_name"].ToString();
T_root.Target =dr["url"].ToString();
TV.Items.Add(T_root);
InitTree(T_root, dr["id"].ToString(),ds);//根结点加载完后,开始调用加载子结点的函数,并开始递归。
}
}
private void InitTree(MenuItem Nd, String Parent_id,DataSet ds) //子树结点加载函数
{
DataRow[] rows = ds.Tables[0].Select("parent_id=" + Parent_id);
if (rows != null)
{
for (int i = 0; i < rows.Length; i++)
{
MenuItem Tnd = new MenuItem();
DataRow dr = rows[i];
Tnd.Text = dr["menu_name"].ToString();
Tnd.Target = dr["url"].ToString();
Nd.ChildItems.Add(Tnd);
InitTree(Tnd, dr["id"].ToString(),ds);//递归调用
}
}
}
#endregion
private void InitTree0(Menu TV,DataSet ds) //根结点加载函数
{
TV.Items.Clear(); //TV为TreeView控件
DataRow[] rows = ds.Tables[0].Select("parent_id=0");
for (int i = 0; i < rows.Length; i++)
{
MenuItem T_root = new MenuItem();
DataRow dr = rows[i];
T_root.Text = dr["menu_name"].ToString();
T_root.Target =dr["url"].ToString();
TV.Items.Add(T_root);
InitTree(T_root, dr["id"].ToString(),ds);//根结点加载完后,开始调用加载子结点的函数,并开始递归。
}
}
private void InitTree(MenuItem Nd, String Parent_id,DataSet ds) //子树结点加载函数
{
DataRow[] rows = ds.Tables[0].Select("parent_id=" + Parent_id);
if (rows != null)
{
for (int i = 0; i < rows.Length; i++)
{
MenuItem Tnd = new MenuItem();
DataRow dr = rows[i];
Tnd.Text = dr["menu_name"].ToString();
Tnd.Target = dr["url"].ToString();
Nd.ChildItems.Add(Tnd);
InitTree(Tnd, dr["id"].ToString(),ds);//递归调用
}
}
}
#endregion