数据库动态形成navBarControl
private void CreateGroup()
{
DataRow[] drs = dt.Select("");//获取所有分组
int i = 0;
foreach (DataRow dr in drs)
{
i++;
DevExpress.XtraNavBar.NavBarGroup Nbg = new DevExpress.XtraNavBar.NavBarGroup();
Nbg.Caption = dr["className"].ToString();
if (i ==1) Nbg.Expanded = true;//打开第一层
navBarControl1.Groups.Add(Nbg);
CreateSubLevel(Convert.ToInt32(dr["classid"]), Nbg);
}
}
/// <summary>
/// 构建下层 navbar subLevel
/// </summary>
/// <param name="grpId">组ID</param>
/// <param name="PassGroup)">NavBarGroup名称</param>
private void CreateSubLevel(int grpId, DevExpress.XtraNavBar.NavBarGroup PassGroup)
{
dt = GetSubList();
foreach (DataRow dr in dt.Select("parentid = "grpId""))
{
DevExpress.XtraNavBar.NavBarItem Nbi = new DevExpress.XtraNavBar.NavBarItem();
Nbi.Caption = dr["className"].ToString();
Nbi.Name = dr["winname"].ToString();
Nbi.Tag = dr["classid"].ToString();
Nbi.SmallImageIndex = _listSqu;
PassGroup.ItemLinks.Add(Nbi);
Nbi.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(Nbi_LinkClicked);
_listSqu++;
}
}
///单击事件
private void Nbi_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
try
{
string ls_form;
ls_form = e.Link.Item.Name.Trim();
//防止一个窗口打开多次
if (Application.OpenForms[ls_form] != null)
{
Application.OpenForms[ls_form].Activate();
return;
}
string assemblyName = (ls_form.Trim().Split('.'))[0];
Form frm = (Form)System.Reflection.Assembly.Load(assemblyName).CreateInstance(ls_form);
frm.Show();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
代码是从网上复制的 有点不明白的是这句 dt = GetSubList();各位大神帮忙看看 数据库动态形成navBarControl --------------------编程问答-------------------- 你没复制全吧,GetSubList函数你没复制过来
这应该是查询下级列表的并返回下级列表的DataTable的方法 --------------------编程问答-------------------- 能否帮忙编程一下???? --------------------编程问答-------------------- 鬼才知道里面逻辑是什么?
怎么帮你写
补充:.NET技术 , C#