在進行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); } } |
以上代碼如果有疑問留言發問 我會盡量幫你尋找答案