示例#1
0
        private static bool AddLi(HtmlHelper helper, TagBuilder ul, Funzione funzione)
        {
            String action     = helper.ViewContext.RouteData.Values["action"].ToString();
            String controller = helper.ViewContext.RouteData.Values["controller"].ToString();

            String[] values = funzione.Url.Split("/".ToCharArray());

            String currentFunctionController = "Home";

            if (values.Length > 1)
            {
                currentFunctionController = values[1];
            }
            String currentFunctionAction = "Index";

            if (values.Length > 2)
            {
                currentFunctionAction = values[2];
            }

            bool active = currentFunctionController
                          .Equals(controller, StringComparison.InvariantCultureIgnoreCase) &&
                          currentFunctionAction.Equals(action, StringComparison.InvariantCultureIgnoreCase) &&
                          !String.IsNullOrEmpty(funzione.Url);
            //Creo il li base
            TagBuilder li = new TagBuilder("li");

            if (active)
            {
                li.AddCssClass("active");
            }
            if (funzione.Figli.Count() > 0)
            {
                //Se ho dei figli assegno al li la classe treeview
                li.AddCssClass("treeview");
            }
            //Genero l'ancora per gestire l'url all'interno del li
            TagBuilder a = new TagBuilder("a");

            a.MergeAttribute("href", funzione.Url);
            TagBuilder i = new TagBuilder("i");

            i.AddCssClass(funzione.Icona);
            a.InnerHtml += i.ToString();
            TagBuilder span = new TagBuilder("span");

            span.InnerHtml = funzione.Descrizione;
            a.InnerHtml   += span.ToString();

            if (funzione.Figli.Count() > 0)
            {
                TagBuilder spanToggle = new TagBuilder("span");
                spanToggle.AddCssClass("pull-right-container");

                TagBuilder iToggle = new TagBuilder("i");
                iToggle.AddCssClass("fa fa-angle-left pull-right");

                spanToggle.InnerHtml = iToggle.ToString();
                a.InnerHtml         += spanToggle;
            }


            //Nel contenuto del li aggiungo l'ancora
            li.InnerHtml += a;

            if (funzione.Figli.Count() > 0)
            {
                //Genero l'ul figlio
                TagBuilder ulChild = new TagBuilder("ul");
                ulChild.AddCssClass("treeview-menu");
                foreach (var figlio in funzione.Figli)
                {
                    bool isSonActive = AddLi(helper, ulChild, figlio);
                    if (isSonActive)
                    {
                        li.AddCssClass("active");
                    }
                }
                //Aggiungo al li padre l'ul figlio
                li.InnerHtml += ulChild;
            }

            //Metto il li appena creato all'interno dell'ul
            ul.InnerHtml += li;
            return(active);
        }
示例#2
0
        static void Main(string[] args)
        {
            int n = Funzione.InserisciNumeroInt();

            Funzione.StampaDivisori(n);
        }