天天看點

動态添加navBarControl1 DXperience學習筆記

在進行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);

            }

        }

以上代碼如果有疑問留言發問 我會盡量幫你尋找答案