您的位置:首页 > 编程语言 > VB

动态添加navBarControl1 DXperience学习笔记

2012-04-22 14:50 246 查看
在进行DXperience进行项目开发的时候 navBarControl1 提供了组分类的功能 相对于微软自带的控件 本人认为DXperience有着不可超越的优势,在平常学习的过程中,碰到了一些问题 如何对navBarGroup1进行有选择的显示 即对于每个登录的用户进行权限分配,今天把学习的经验写出来,希望能给DXperience爱好的初学者一点启发

数据库读取到 dataset后进行编写如下代码

以下是代码片段:

if (ds.Tables[0].Rows.Count > 0)

{

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

{

string id = ds.Tables[0].Rows[i]["id"].ToString(); //该用户可管理的id号

if (User.Power.IndexOf(id) == -1)

continue;

string mid = ds.Tables[0].Rows[i]["mid"].ToString(); //隶属的管理类型

string name = ds.Tables[0].Rows[i]["PowerName"].ToString(); //管理名称

int cls = int.Parse(ds.Tables[0].Rows[i]["type"].ToString());//图片号码

switch (mid)

{

case "1":

AddGroup(navBarGroup1, name, "n" + id, cls);//AddGroup函数用于在navBarGroup1控件中写入新项

break;

case "2":

AddGroup(navBarGroup2, name, "n" + id, cls);

break;

case "3":

AddGroup(navBarGroup3, name, "n" + id, cls);

break;

case "4":

AddGroup(navBarGroup4, name, "n" + id, cls);

break;

case "5":

AddGroup(navBarGroup5, name, "n" + id, cls);

break;

}

}

}

以下是AddGroup 函数

以下是代码片段:

/// <summary>

/// 参数传递 添加控件

/// </summary>

/// <param name="nbg"></param>

/// <param name="name"></param>

/// <param name="id"></param>

/// <param name="cls"></param>

private void AddGroup(DevExpress.XtraNavBar.NavBarGroup nbg,string name,string id,int cls )

{

try

{

DevExpress.XtraNavBar.NavBarItem navBarItem1 = new DevExpress.XtraNavBar.NavBarItem();

navBarItem1.Caption = name;

navBarItem1.Name = id;

navBarItem1.SmallImageIndex = cls;

navBarItem1.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(navBarItem1_LinkClicked); //新增项的 点击事件 触发

nbg.ItemLinks.AddRange(new DevExpress.XtraNavBar.NavBarItemLink[] { new DevExpress.XtraNavBar.NavBarItemLink(navBarItem1) });

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}
以下是点击事件代码

以下是代码片段:

/// <summary>

/// 左侧栏点击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)

{

try

{

string pagename = e.Link.Item.Name; //获取左侧栏的name值

string caption = e.Link.Caption; //获取名字

switch (pagename)

{

case " ":

//执行代码

break;

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

以上代码如果有疑问留言发问 我会尽量帮你寻找答案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: