Exemple #1
0
        public void InitNodes(DataTable menu, ref int rowNumber)
        {
            if (rowNumber >= menu.Rows.Count)
            {
                return;
            }

            DataRow row = menu.Rows[rowNumber];

            item = new MenuItem()
            {
                title       = (string)row["Title"],
                level       = (int)row["CorrectLevel"],
                link        = (string)row["FullPath"],
                hasStatPage = ((string)row["Pages"] != "" && (string)row["Pages"] != null)
            };

            rowNumber++;

            while (rowNumber < menu.Rows.Count)
            {
                DataRow nextRow   = menu.Rows[rowNumber];
                var     nextLevel = (int)nextRow["CorrectLevel"];

                if (nextLevel <= item.level)
                {
                    return;
                }
                var subNode = new MenuNode();
                subNode.InitNodes(menu, ref rowNumber);
                subNodes.Add(subNode);
            }
        }
Exemple #2
0
        public MenuTree(DataTable menu)
        {
            //может сломаться если нумерация уровней плохая. надо улучшить
            int rowNumber = 0;

            while (rowNumber < menu.Rows.Count)
            {
                DataRow nextRow   = menu.Rows[rowNumber];
                var     nextLevel = (int)nextRow["CorrectLevel"];

                if (nextLevel != 0)
                {
                    return;
                }

                var subNode = new MenuNode();
                subNode.InitNodes(menu, ref rowNumber);
                subNodes.Add(subNode);
            }
        }