菜单控件仅显示“根项目",但不显示子项. [英] Menu Control showing only Root Items, but no child items.
本文介绍了菜单控件仅显示“根项目",但不显示子项.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
朋友...
我正在尝试绑定菜单控件.但是它仅显示根项目而不显示子项目.
我正在这样尝试.....
HI friends...
I am trying to bind menu control.But it only show Root Items not showing child items.
I am trying as like this.....
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
DataTable dt = new DataTable();
SqlConnection con = new SqlConnection("Data Source=WGT-SRVR1;Initial Catalog=fgdfg_DB;User ID=fgf;Password=fgdfgfdgdf");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
//GetMenuData();
populateMenuItem();
}
private void populateMenuItem()
{
DataTable menuData = GetMenuData();
AddTopMenuItems(menuData);
}
private DataTable GetMenuData()
{
con.Open();
SqlCommand cmd = new SqlCommand("select CA_ID,CA_Name,CA_Order,CA_Parent from TBL_Category", con);
SqlDataReader sdr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(sdr);
con.Close();
return dt;
}
private void AddTopMenuItems(DataTable menuData)
{
GetMenuData();
DataView view = new DataView(menuData);
view.RowFilter = "CA_Parent IS NULL";
foreach (DataRowView row in view)
{
MenuItem newMenuItem = new MenuItem(row["CA_Name"].ToString(), row["CA_Parent"].ToString());
Menu1.Items.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
}
}
private void AddChildMenuItems(DataTable menuData, MenuItem parentMenuItem)
{
DataView view = new DataView(menuData);
string str = parentMenuItem.Text.ToString();
view.RowFilter = "CA_Parent='" + parentMenuItem.Text.ToString()+"'";
//view.RowFilter = "CA_Parent=" +parentMenuItem.Text + "";
//+parentMenuItem.Value.ToString();
foreach (DataRowView row in view)
{
MenuItem newMenuItem = new MenuItem(row["CA_Name"].ToString(), row["CA_Parent"].ToString());
parentMenuItem.ChildItems.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
}
}
}
[edit]已添加代码块-OriginalGriff [/edit]
[edit]Code block added - OriginalGriff[/edit]
推荐答案
您需要使用过滤器
childitem的CA_Parent = ParentMenuitem的CA_ID
希望对您有帮助
you need use filter
childitem''s CA_Parent = ParentMenuitem''s CA_ID
i hope to help you
这篇关于菜单控件仅显示“根项目",但不显示子项.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文