Need to convert asp menu to radmenu code behind

1 posts, 0 answers
  1. chris
    chris avatar
    1 posts
    Member since:
    Apr 2008

    Posted 28 Feb 2009 Link to this post

    Hi, I have an asp.net application and wish to convert the asp menu to a rad menu and need some help with the code behind.  Here is the current asp menu code behind.

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Vevo;
    using Vevo.DataAccessCache;
    using Vevo.DataAccessLib;

    public partial class Components_CategoryNavMenuList : Vevo.Language.BaseLanguageUserControl
    {
        private int _nodeDepth = 0;
        private int _maxNode = 0;
        
        private string CategoryID
        {
            get
            {
                string id = Request.QueryString["CategoryID"];
                if (String.IsNullOrEmpty( id ))
                    return "0";
                else
                    return id;
            }
        }


        private string CategoryName
        {
            get
            {
                if (Request.QueryString["CategoryName"] == null)
                    return String.Empty;
                else
                    return Request.QueryString["CategoryName"];
            }
        }

        private void PopulateControls()
        {
            DataTable table = CategoryAccessCache.Instance.GetByParentID(
                CultureUtilities.StoreCultureID, "0", "SortOrder", FlagFilter.ShowTrue );

            uxCategoryNavListMenu.Items.Clear();
            foreach (DataRow row in table.Rows)
            {
                uxCategoryNavListMenu.Items.Add( NewItem( row ) );
                _nodeDepth = 0;
            }

            foreach (MenuItem mi in uxCategoryNavListMenu.Items)
            {
                CategoryItem( mi, CategoryID, CategoryName );
            }
        }

        private void CategoryItem( MenuItem menuItem, string categoryID, string categoryName )
        {
            if (menuItem.Value == categoryID || menuItem.Text == categoryName)
            {
                if (menuItem.Value == CategoryID || menuItem.Text == CategoryName)
                    menuItem.Selected = true;
                //if (menuItem.Parent != null)
                //    menuItem.Parent.Selected = true;
                return;
            }
            else
            {
                foreach (MenuItem mi in menuItem.ChildItems)
                {
                    if (mi.Value == categoryID || mi.Text == categoryName)
                    {
                        if (mi.Value == CategoryID || mi.Text == CategoryName)
                            mi.Selected = true;
                        CategoryItem( menuItem, mi.Parent.Value, mi.Parent.Text );
                        return;
                    }
                    CategoryItem( mi, categoryID, categoryName );
                }
            }
        }

        private void PopulateCategories( MenuItem item, string parentCategoryID )
        {
            DataTable table = CategoryAccessCache.Instance.GetByParentID( CultureUtilities.StoreCultureID, parentCategoryID, "SortOrder", FlagFilter.ShowTrue );

            foreach (DataRow row in table.Rows)
            {
                item.ChildItems.Add( NewItem( row ) );
            }
        }

        private MenuItem NewItem( DataRow row )
        {
            MenuItem newItem = new MenuItem();
            newItem.Text = row["Name"].ToString();
            newItem.Value = row["CategoryID"].ToString();

            if (CategoryAccessCache.Instance.IsCategoryIDNotLeaf( row["CategoryID"].ToString() ))
            {
                newItem.NavigateUrl = UrlManager.GetCategoryUrl( row["CategoryID"].ToString(), row["UrlName"].ToString() );

                _nodeDepth++;
                if (_nodeDepth < MaxNode) //Max Tree depth
                    PopulateCategories( newItem, row["CategoryID"].ToString() );
                _nodeDepth--;
            }
            else
            {
                newItem.NavigateUrl = UrlManager.GetCategoryUrl( row["CategoryID"].ToString(), row["UrlName"].ToString() );
            }
            return newItem;
        }


        protected void Page_Load( object sender, EventArgs e )
        {
            if (!IsPostBack)
            {
                PopulateControls();
            }
        }

        
        public int MaxNode
        {
            get
            {
                return _maxNode;
            }
            set
            {
                _maxNode = value;
            }
        }

        public void Refresh()
        {
            PopulateControls();
        }
    }

Back to Top