2017-02-17 5 views
-1

У меня есть таблицы меню, как этотКак отобразить NavBar управления DevExpress из базы данных

enter image description here

GROUPMENU является группа управления NavBar и JUDULMENU является элементом. Я попытался с помощью этого кода, но он не работает

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

Это решает для меня сейчас .. спасибо

Смежные вопросы