Создание динамического меню в asp.net - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь динамически создать меню в веб-формах, но возникают проблемы с заполнением дочерних элементов.Вот мой код

   DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    Delivery_SettingDAL delivery_SettingDAL = new Delivery_SettingDAL();
    ds = delivery_SettingDAL.get_menu_Items();
    dt = ds.Tables[0];
    foreach(DataRow item in dt.Select("PerentID=" + 0))
    {
        MainMenu.Items.Add(new MenuItem(item["menuname"].ToString(), item["MenuID"].ToString(), "", item["Menulocation"].ToString()));
    }

    foreach (DataRow item in dt.Select("PerentID>" + 0))
    {
        MenuItem men1 = new MenuItem(item["menuname"].ToString(), item["MenuID"].ToString(), "", item["Menulocation"].ToString());

        MainMenu.FindItem(item["perentid"].ToString()).ChildItems.Add(men1);

Я получаю это исключение System.Web.UI.WebControls.Menu.FindItem (...) вернул нуль сильный текст в этой строке

MainMenu.FindItem(item["perentid"].ToString()).ChildItems.Add(men1);

И я не могу понять, почему.

Вот мой delivery_SettingDAL.get_menu_Items ();

 private const string PK_GET_MENU_ITEMS = "SELECT MENUID,MENUNAME,MENULOCATION,PERENTID FROM MENU";
 public DataSet get_menu_Items()
        {
            DataSet ds = new DataSet();
            using (OracleConnection oracleConnection = new OracleConnection())
            {

                try
                {
                    oracleConnection.ConnectionString = ConfigurationManager.ConnectionStrings["DataBase"].ToString();

                    oracleConnection.Open();

                    OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(PK_GET_MENU_ITEMS, oracleConnection);

                    oracleDataAdapter.Fill(ds);
                }
                catch (OracleException ex)
                {
                    IDelivery_Setting delivery_Setting = new Delivery_SettingDAL();
                    delivery_Setting.AddExeption(ex.ToString(), "UsersDAL", "VerifyUserID");
                }
                finally
                {
                    oracleConnection.Close();
                }

            }
            return ds;
        }
...