private void Tree_DataBind() { List <string> list = new List <string>(); foreach (RadTreeNode node in Tree.GetAllNodes()) { if (node.Expanded) { list.Add(node.Value); } } ConfigurationDataSet.ActionDataTable table = ActionProvider.GetActionsTree() as ConfigurationDataSet.ActionDataTable; table.DefaultView.Sort = string.Format(CultureInfo.InvariantCulture, "{0},{1},{2}", table.ParentActionIdColumn.ColumnName, table.OrderNumberColumn.ColumnName, table.NameColumn.ColumnName); Tree.DataSource = table; Tree.DataBind(); foreach (RadTreeNode node in Tree.GetAllNodes()) { if (list.Contains(node.Value)) { node.Expanded = true; } } }
internal static DataTable GetAlternativeParentActionsTree(Guid actionId) { ConfigurationDataSet.ActionDataTable table = GetActionsTree() as ConfigurationDataSet.ActionDataTable; ArrayList list = new ArrayList(); FillActionIdList(ConfigurationDataSet.Current.Action.FindByActionId(actionId), ref list); foreach (ConfigurationDataSet.ActionRow row in table.Rows) { if (!((row.ActionId == GlobalNavigationLinksActionId) || (row.ActionId == ConfigurationGlobalNavigationLinkActionId) || (row.ActionId == PagesAndControlsActionId) || (row.ActionId == MyAccountGlobalNavigationLinkActionId) || (row.ActionId == UsersPageActionId))) { if (list.Contains(row.ActionId) || row.BuiltIn || (((ActionType)row.ActionTypeId != ActionType.Page) && ((ActionType)row.ActionTypeId != ActionType.GlobalNavigationLink))) { row.Delete(); } } } table.AcceptChanges(); return(table); }
/// <summary> /// Loads the collection from configuration data set. /// </summary> private static void LoadFromConfigurationDataSet() { ActionCollection globalNavigationLinks = new ActionCollection(); ActionCollection pagesAndControls = new ActionCollection(); ConfigurationDataSet.ActionDataTable table = ConfigurationDataSet.Current.Action; ConfigurationDataSet.ActionRow[] rows = (ConfigurationDataSet.ActionRow[])table.Select(string.Concat(table.ParentActionIdColumn.ColumnName, " IS NULL")); ReadFromConfigurationDataSet(null, rows, new List <ActionType>() { ActionType.Page, ActionType.Control }, pagesAndControls); ReadFromConfigurationDataSet(null, rows, new List <ActionType>() { ActionType.GlobalNavigationLink }, globalNavigationLinks); s_PagesAndControls = pagesAndControls; s_GlobalNavigationLinks = globalNavigationLinks; }
/// <summary> /// Returns the actions table. /// </summary> /// <returns>The actions table.</returns> internal static DataTable GetActionsTree() { ConfigurationDataSet.ActionDataTable table = ConfigurationDataSet.Current.Action.Copy() as ConfigurationDataSet.ActionDataTable; foreach (ConfigurationDataSet.ActionRow row in table.Select(string.Concat(table.ParentActionIdColumn.ColumnName, " = '", ConfigurationPageActionId.ToString(), "'"))) { row.ParentActionId = ConfigurationGlobalNavigationLinkActionId; } foreach (ConfigurationDataSet.ActionRow row in table.Select(string.Concat(table.ParentActionIdColumn.ColumnName, " = '", MyAccountPageActionId.ToString(), "'"))) { row.ParentActionId = MyAccountGlobalNavigationLinkActionId; } ConfigurationDataSet.ActionRow actionRow = table.FindByActionId(ConfigurationPageActionId); if (actionRow != null) { actionRow.Delete(); } actionRow = table.FindByActionId(MyAccountPageActionId); if (actionRow != null) { actionRow.Delete(); } actionRow = table.FindByActionId(LoginGlobalNavigationLinkActionId); if (actionRow != null) { actionRow.Delete(); } actionRow = table.FindByActionId(LoginAsUserGlobalNavigationLinkActionId); if (actionRow != null) { actionRow.Delete(); } table.AcceptChanges(); ArrayList setupActionIdList = new ArrayList(); foreach (ConfigurationDataSet.ActionRow row in table) { if (IsSetupPage(row)) { setupActionIdList.Add(row.ActionId); } } foreach (Guid actionId in setupActionIdList) { actionRow = table.FindByActionId(actionId); if (actionRow != null) { actionRow.Delete(); } } table.AcceptChanges(); return(table); }