Ejemplo n.º 1
0
        public List <TreeViewNode> Nodes(string root)
        {
            CurrentUser = new SPA.User(Context.User.Identity.Name);
            bool IsAdmin = CurrentUser.InRole(Role.RoleType.Administrator.ToString());

            // on first load, root will be 0. on subsequent requests, root will be the id of the selected tree node
            int nodeId = (root == "source") ? 0 : Int32.Parse(root.ToString());
            int menuId = int.Parse(HttpContext.Current.Request.QueryString["menuid"].ToString());

            // everything
            string URL    = HttpContext.Current.Request.Url.ToString();
            string RawURL = HttpContext.Current.Request.RawUrl;

            RawURL = RawURL.Replace("/~", "");
            URL    = URL.Replace(RawURL, "");

            DataSet  dsItems = new DataSet();
            MenuNode node    = null;

            // on first load, get root (parent) nodes. On subsequet requests, get children nodes
            dsItems = nodeId == 0 ? MenuNode.Items(menuId, nodeId, true) : MenuNode.Items(menuId, nodeId, true);

            List <TreeViewNode> nodes = new List <TreeViewNode>();

            foreach (DataRow child in dsItems.Tables[0].Rows)
            {
                node = new MenuNode(int.Parse(child["ID"].ToString()));
                bool   leaf     = !node.HasChildren;
                string editLink = string.Format("{0}/_layouts/spa/pages/menunodeitem.aspx?View=Edit&ID={1}&MenuID={2}&ParentID={3}", URL, node.ID.ToString(), menuId.ToString(), node.ParentID.ToString());
                string treeText = string.Format("<a href=\"{0}\" class=\"navmenulink\" title=\"{1}\" onmouseover=\"mopen('n{2}')\" onmouseout=\"mclosetime()\">{3}</a>&nbsp;&nbsp;<a id=\"n{4}\" title='Click to report as a bad link' onmouseover=\"mcancelclosetime()\" onmouseout=\"mclosetime()\" class=\"navmenunodeedit\" href=\"javascript:ModalOpen('{5}', 'Report Node', true);\">[report]</a>", node.URL, node.Description, node.ID.ToString(), node.Name, node.ID.ToString(), editLink);
                if (IsAdmin)
                {
                    treeText = string.Format("<a href=\"{0}\" class=\"navmenulink\" title=\"{1}\" onmouseover=\"mopen('n{2}')\" onmouseout=\"mclosetime()\">{3}</a>&nbsp;&nbsp;<a id=\"n{4}\" title='Edit item' onmouseover=\"mcancelclosetime()\" onmouseout=\"mclosetime()\" class=\"navmenunodeedit\" href=\"javascript:ModalOpen('{5}', 'Edit Node', true);\">[edit]</a>", node.URL, node.Description, node.ID.ToString(), node.Name, node.ID.ToString(), editLink);
                }
                nodes.Add(new TreeViewNode()
                {
                    id          = node.ID.ToString(),
                    url         = node.URL,
                    text        = treeText,
                    hasChildren = node.HasChildren,
                    target      = node.Target,
                    classes     = leaf ? "file" : "folder",
                });
            }
            return(nodes);
        }
Ejemplo n.º 2
0
        protected override void Fill()
        {
            try {
                BuildBreadcrumb();
                DataView dv = new DataView();
                if (txtSearch.Text == string.Empty)
                {
                    gvData.EmptyDataText = "There are no items to show at this level";
                    dv = new DataView(MenuNode.Items(1, ItemID, false).Tables[0]);
                }
                else
                {
                    gvData.EmptyDataText = Message.EMPTY_LIST_SEARCHED;
                    dv = new DataView(MenuNode.Items(1, ItemID, false).Tables[0]);
                }
                dv.Sort          = (GridSortDirection == SortDirection.Ascending) ? GridSortExpression + " ASC" : GridSortExpression + " DESC";
                gvData.PageSize  = GridViewPageSize;
                gvData.PageIndex = PageIndex;
                ItemCount        = dv.Table.Rows.Count;

                if (SetupPager())
                {
                    tablePager.Visible = true;
                }
                else
                {
                    tablePager.Visible = false;
                }

                gvData.DataSource = dv;
                gvData.DataBind();
            } catch (Exception ex) {
                SPA.Error.WriteError(ex);
                if (ShowDebug)
                {
                    lblErrorMessage.Text = ex.ToString();
                }
            }
        }