2017-02-17 6 views
-1

からのNavBarコントロールDevExpress社を表示します。私はこのコードを使用して試してみましたが、それはは、どのように私はGROUPMENUは、ナビゲーションバーコントロールの基であり、JUDULMENUはアイテムです。この</p> <p><a href="https://i.stack.imgur.com/3rbI1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3rbI1.png" alt="enter image description here"></a></p> <p>のようなテーブルのMENUを持つデータベース

if (koneksidb.con.State == ConnectionState.Open) 
    koneksidb.con.Close(); 
koneksidb.con.Open(); 
OracleCommand cmd = new OracleCommand(); 
cmd.CommandText = @"SELECT * FROM MENU ORDER BY GROUPMENU ASC"; 
cmd.Connection = koneksidb.con; 
OracleDataReader dr = cmd.ExecuteReader(); 

// Create a NavBarControl. 
NavBarControl navBar = new NavBarControl(); 
this.Controls.Add(navBar); 
navBar.Dock = DockStyle.Left; 
// Apply the "SkinExplorerBarView" style. 
navBar.PaintStyleName = "SkinExplorerBarView"; 

while (dr.Read()) 
{ 
    NavBarGroup groupLocal = new NavBarGroup(dr["GROUPMENU"].ToString()); 
    NavBarItem itemInbox = new NavBarItem(dr["JUDULMENU"].ToString()); 

    navBar.BeginUpdate(); 
    navBar.Groups.Add(groupLocal); 
    groupLocal.ItemLinks.Add(itemInbox); 
    groupLocal.Expanded = true; 
    navBar.EndUpdate(); 
} 

この私のコードの作業の詳細は動作しません:

enter image description here

誰もがこのコードを修正する方法を私に提案してください? おかげで、ここでメニューテーブルに

答えて

1

だけが異なるメソッドまたは単一メソッドから使​​用でき..グループとアイテムとの間を分離するためにクエリを使用して..は、単一の方法を使用して、上記問題を解決するためのコード例である:

try 
{ 
    navBarControl1.BeginUpdate(); 

    //GET GROUP 
    if (koneksidb.con.State == ConnectionState.Open) 
     koneksidb.con.Close(); 
    koneksidb.con.Open(); 
    OracleCommand cmd = new OracleCommand(); 
    cmd.CommandText = @"SELECT DISTINCT GROUPMENU FROM MENU "; 
    cmd.Connection = koneksidb.con; 
    OracleDataReader dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 
     List<string> header = new List<string>(); 
     header.Add(dr["GROUPMENU"].ToString()); 

     foreach (string hdr in header) 
     { 
      NavBarGroup group = new NavBarGroup(hdr); 
      //group.Caption = fi.Name; 
      group.LargeImageIndex = 0; 
      group.Expanded = true; 

      //GET ITEM 
      OracleCommand cmd1 = new OracleCommand(); 
      cmd1.CommandText = @"SELECT * FROM MENU WHERE GROUPMENU='" + hdr + "' ORDER BY GROUPMENU ASC"; 
      cmd1.Connection = koneksidb.con; 
      OracleDataReader dr1 = cmd1.ExecuteReader(); 
      while (dr1.Read()) 
      { 
       List<string> JudulLists = new List<string>(); 
       JudulLists.Add(dr1["JUDULMENU"].ToString()); 

       foreach (var Judul in JudulLists) 
       { 
        NavBarItem item = new NavBarItem(Judul.ToString()); 
        navBarControl1.Items.Add(item); 
        group.ItemLinks.Add(item); 
       } 
      } 

      if (group.ItemLinks.Count > 0) 
      { 
       navBarControl1.Groups.Add(group); 
      } 
     } 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
finally 
{ 
    navBarControl1.EndUpdate(); 
} 

結果:これが今の私のために解決し

enter image description here

..おかげ

関連する問題

 関連する問題