コード例 #1
0
ファイル: PxUrl.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Add parameter to URL
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public void AddParameter(string key, string value)
        {
            // Check that the value do not contain illegal characters
            if (!QuerystringManager.CheckValue(value))
            {
                return;
            }

            switch (key)
            {
            case LANGUAGE_KEY:
                Language = System.Web.HttpUtility.UrlDecode(value);
                break;

            case DB_KEY:
                Database = System.Web.HttpUtility.UrlDecode(value);
                break;

            case PATH_KEY:
                Path = System.Web.HttpUtility.UrlDecode(value);
                break;

            case TABLE_KEY:
                Table = System.Web.HttpUtility.UrlDecode(value);
                break;

            case LAYOUT_KEY:
                Layout = System.Web.HttpUtility.UrlDecode(value);
                break;

            default:
                _params.Add(new KeyValuePair <string, string>(key, value));
                break;
            }
        }
コード例 #2
0
        /// <summary>
        /// Initializes the table
        /// </summary>
        private void InitializeTable()
        {
            // Presentation.General settings
            Table1.PromptForMandatoryFootnotes = PXWeb.Settings.Current.Presentation.PromptMandatoryFootnotes;

            // Presentation.Table settings
            switch (QuerystringManager.GetQuerystringParameter("tablelayout"))
            {
            case "layout1":
                Table1.Layout = TableLayoutType.Layout1;
                break;

            case "layout2":
                Table1.Layout = TableLayoutType.Layout2;
                break;

            default:
                Table1.Layout = PXWeb.Settings.Current.Presentation.Table.DefaultLayout;
                break;
            }
            Table1.TableTransformation      = PXWeb.Settings.Current.Presentation.Table.TableTransformation;
            Table1.MaxColumns               = PXWeb.Settings.Current.Presentation.Table.MaxColumns;
            Table1.MaxRows                  = PXWeb.Settings.Current.Presentation.Table.MaxRows;
            Table1.TitleVisible             = PXWeb.Settings.Current.Presentation.Table.TitleVisible;
            Table1.DisplayCellInformation   = PXWeb.Settings.Current.Presentation.Table.Attributes.DisplayAttributes;
            Table1.DisplayDefaultAttributes = PXWeb.Settings.Current.Presentation.Table.Attributes.DisplayDefaultAttributes;

            // General.Global settings
            Table1.DataNotePlacement = PXWeb.Settings.Current.General.Global.DataNotePlacement;
            Table1.UseUpperCase      = PXWeb.Settings.Current.General.Global.Uppercase;
        }
コード例 #3
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // Show mandatory footnotes?
                if (Table1.PromptForMandatoryFootnotes && (Request.Browser.EcmaScriptVersion.Major >= 1))
                {
                    List <FootnoteListItem> lstMandatoryFootnotes = FootnoteList.GetFootnoteList(PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel.Meta, true);

                    if (lstMandatoryFootnotes != null)
                    {
                        if (lstMandatoryFootnotes.Count > 0)
                        {
                            if (!MandatoryFootnotesDisplayed())
                            {
                                ShowFootnoteDialog(true, false);

                                // Remember that mandatory footnotes have been displayed for this table
                                if (!string.IsNullOrEmpty(QuerystringManager.GetQuerystringParameter("px_tableid")))
                                {
                                    Session["promptmandatoryfootnotes"] = QuerystringManager.GetQuerystringParameter("px_tableid");
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #4
0
ファイル: PxWeb.Master.cs プロジェクト: stefguggisberg/PxWeb
 protected void AddToQueries(Dictionary <string, string> queries, string key)
 {
     if (Page.RouteData.Values[key] != null)
     {
         if (queries.ContainsKey(key))
         {
             queries[key] = ValidationManager.GetValue(Page.RouteData.Values[key].ToString());
         }
         else
         {
             queries.Add(key, ValidationManager.GetValue(Page.RouteData.Values[key].ToString()));
         }
     }
     else if (QuerystringManager.GetQuerystringParameter(key) != null)
     {
         if (queries.ContainsKey(key))
         {
             queries[key] = QuerystringManager.GetQuerystringParameter(key);
         }
         else
         {
             queries.Add(key, QuerystringManager.GetQuerystringParameter(key));
         }
     }
 }
コード例 #5
0
        /// <summary>
        /// This method handles if the language for the saved query is overridden in the URL
        /// </summary>
        private void HandleChangedLanguage()
        {
            string lang = QuerystringManager.GetQuerystringParameter("lang");

            if (lang != null)
            {
                _language = lang;
            }
        }
コード例 #6
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
 /// <summary>
 /// Is the selected chart type Column-Line?
 /// </summary>
 /// <param name="context">Http context</param>
 /// <returns>Returns true if selected charttype is Column-Line, else false</returns>
 private bool IsColumnLine(HttpContext context)
 {
     if (QuerystringManager.GetQuerystringParameter(context, ChartParameters.CHARTTYPE) == Plugins.Views.CHART_COLUMNLINE)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            _database = PxUrl.Database;
            _language = PxUrl.Language;
            _dbi      = PXWeb.Settings.Current.General.Databases.GetDatabase(_database);

            if (!Page.IsPostBack)
            {
                _searchQuery = QuerystringManager.GetQuerystringParameter("searchquery");
                Master.SetBreadcrumb(PCAxis.Web.Controls.Breadcrumb.BreadcrumbMode.MenuSubPage, "Search");
                Master.SetH1TextDatabase();
                Master.SetNavigationFlowMode(PCAxis.Web.Controls.NavigationFlow.NavigationFlowMode.First);
                Master.SetNavigationFlowVisibility(PXWeb.Settings.Current.Navigation.ShowNavigationFlow);
                PCAxis.Web.Core.Management.PaxiomManager.Clear();

                if (!string.IsNullOrEmpty(_searchQuery))
                {
                    pxSearch.SearchText = _searchQuery;
                }

                pxSearch.RedirectOnSearch = false;
            }
            else
            {
                _searchQuery = pxSearch.SearchText;
            }

            chkCodes.Enabled  = !rbAll.Checked;
            chkTitle.Enabled  = !rbAll.Checked;
            chkValues.Enabled = !rbAll.Checked;

            if (PXWeb.Settings.Current.Features.General.SearchEnabled == false)
            {
                pxSearch.Visible        = false;
                lblSearchResult.Visible = false;
                repSearchResult.Visible = false;
                return;
            }

            string error;

            if (!PXWeb.Misc.InputValidation.ValidateNoIllegalCharcters(_searchQuery, out error))
            {
                //Return and let SearchControl.ascx print the error message
                return;
            }


            if (!string.IsNullOrEmpty(_searchQuery))
            {
                DoSearch();
            }
        }
コード例 #8
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get show legend
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>If legend shall be displayed in chart or not</returns>
        private bool GetLegend(HttpContext context, ChartSettings settings)
        {
            bool showLegend;

            if (bool.TryParse(QuerystringManager.GetQuerystringParameter(context, ChartParameters.LEGEND), out showLegend))
            {
                return(showLegend);
            }
            else
            {
                return(settings.ShowLegend);
            }
        }
コード例 #9
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get title
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart title</returns>
        private string GetTitle(HttpContext context, ChartSettings settings)
        {
            if (PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel.Data.Model.Meta.DescriptionDefault)
            {
                return(PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel.Data.Model.Meta.Description);
            }
            if (QuerystringManager.GetQuerystringParameter(context, ChartParameters.TITLE) != null)
            {
                return(HttpUtility.UrlDecode(QuerystringManager.GetQuerystringParameter(context, ChartParameters.TITLE)));
            }

            return("");
        }
コード例 #10
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get legend height
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart legend height</returns>
        private int GetLegendHeight(HttpContext context, ChartSettings settings)
        {
            int height = 0;

            if (int.TryParse(QuerystringManager.GetQuerystringParameter(context, ChartParameters.LEGENDHEIGHT), out height))
            {
                if (height > 0)
                {
                    return(height);
                }
            }

            return(settings.LegendHeight);
        }
コード例 #11
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get Line thickness
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart line thickness</returns>
        private int GetLineThickness(HttpContext context, ChartSettings settings)
        {
            int thickness = 0;

            if (int.TryParse(QuerystringManager.GetQuerystringParameter(context, ChartParameters.LINE_THICKNESS), out thickness))
            {
                if (thickness > 0)
                {
                    return(thickness);
                }
            }

            return(settings.LineThickness);
        }
コード例 #12
0
        public void ProcessRequest(HttpContext context)
        {
            string language = null;
            string database = null;
            string table    = null;
            List <LinkManager.LinkItem> queryParams = new List <LinkManager.LinkItem>();

            // Fetch the route data
            var routeData = context.Items["RouteData"] as RouteData;

            if (routeData.Values[PxUrl.LANGUAGE_KEY] != null)
            {
                language = ValidationManager.GetValue(routeData.Values[PxUrl.LANGUAGE_KEY].ToString());
            }
            if (routeData.Values[PxUrl.DB_KEY] != null)
            {
                database = ValidationManager.GetValue(routeData.Values[PxUrl.DB_KEY].ToString());
            }
            if (routeData.Values[PxUrl.TABLE_KEY] != null)
            {
                table = ValidationManager.GetValue(routeData.Values[PxUrl.TABLE_KEY].ToString());
            }

            if ((!string.IsNullOrEmpty(language)) && (!string.IsNullOrEmpty(database)) && (!string.IsNullOrEmpty(table)))
            {
                SearchStatusType        status;
                List <SearchResultItem> result = SearchManager.Current.Search(database, language, table, out status, SearchConstants.SEARCH_FIELD_SEARCHID);

                if (result.Count == 1)
                {
                    DatabaseInfo dbi = PXWeb.Settings.Current.General.Databases.GetDatabase(database);

                    foreach (String key in HttpContext.Current.Request.QueryString.AllKeys)
                    {
                        //
                        queryParams.Add(new LinkManager.LinkItem(key, QuerystringManager.GetQuerystringParameter(key)));
                    }

                    string url = SearchHelper.GetSearchResultUrl(result[0], dbi, language, queryParams);
                    context.Response.Redirect(url);
                }
                else
                {
                    // If table is not found redirect to menu page
                    context.Response.Redirect(LinkManager.CreateLink("Menu.aspx"));
                }
                context.Response.Redirect(LinkManager.CreateLink("Default.aspx"));
            }
        }
コード例 #13
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get chart type
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart type</returns>
        private SeriesChartType GetChartType(HttpContext context, ChartSettings settings)
        {
            switch (QuerystringManager.GetQuerystringParameter(context, ChartParameters.CHARTTYPE))
            {
            case Plugins.Views.CHART_LINE:
                return(SeriesChartType.Line);

            case Plugins.Views.CHART_BAR:
                return(SeriesChartType.Bar);

            case Plugins.Views.CHART_COLUMN:
                return(SeriesChartType.Column);

            case Plugins.Views.CHART_PIE:
                return(SeriesChartType.Pie);

            case Plugins.Views.CHART_POPULATIONPYRAMID:
                return(SeriesChartType.Pyramid);

            case Plugins.Views.CHART_COLUMNSTACKED:
                return(SeriesChartType.StackedColumn);

            case Plugins.Views.CHART_BARSTACKED:
                return(SeriesChartType.StackedBar);

            case Plugins.Views.CHART_COLUMNSTACKED100:
                return(SeriesChartType.StackedColumn100);

            case Plugins.Views.CHART_BARSTACKED100:
                return(SeriesChartType.StackedBar100);

            case Plugins.Views.CHART_AREA:
                return(SeriesChartType.Area);

            case Plugins.Views.CHART_AREASTACKED:
                return(SeriesChartType.StackedArea);

            case Plugins.Views.CHART_AREASTACKED100:
                return(SeriesChartType.StackedArea100);

            case Plugins.Views.CHART_POINT:
                return(SeriesChartType.Point);

            case Plugins.Views.CHART_RADAR:
                return(SeriesChartType.Radar);
            }
            return(settings.ChartType);
        }
コード例 #14
0
ファイル: Chart.aspx.cs プロジェクト: trygu/PxWeb
        private void SetDisplayModeOnPanels()
        {
            if (!string.IsNullOrEmpty(QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL)))
            {
                if (QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL).Equals("chartsettings"))
                {
                    pnlSettings.Style.Add("display", "inline-block");
                    lnkShowChartSettings.NavigateUrl = PanelLink.BuildLink("");
                    imgSettingsExpander.CssClass     = "px-settings-collapseimage";
                    return;
                }
            }

            pnlSettings.Style.Add("display", "none");
            lnkShowChartSettings.NavigateUrl = PanelLink.BuildLink("chartsettings");
            imgSettingsExpander.CssClass     = "px-settings-expandimage";
        }
コード例 #15
0
ファイル: Presentation.master.cs プロジェクト: trygu/PxWeb
 private void SetSaveQueryLinks()
 {
     if (this.Visible)
     {
         if (!string.IsNullOrEmpty(QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL)))
         {
             if (QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL).Equals("savequery1"))
             {
                 lnkSaveQueryInformation.NavigateUrl = PanelLink.BuildLink("");
                 imgShowSaveQueryExpander.CssClass   = "px-settings-collapseimage";
                 return;
             }
         }
         lnkSaveQueryInformation.NavigateUrl = PanelLink.BuildLink("savequery1");
         imgShowSaveQueryExpander.CssClass   = "px-settings-expandimage";
     }
 }
コード例 #16
0
 /// <summary>
 /// Depending on which link the user clicks on the panels will be set to visible or not.
 /// Used if the script is disabled.
 /// </summary>
 private void SetDisplayModeOnPanels()
 {
     if (this.Visible)
     {
         if (!string.IsNullOrEmpty(QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL)))
         {
             //Hide first panel and show the second panel,
             //includes choice of time period and how the query should be saved
             if (QuerystringManager.GetQuerystringParameter(PanelLink.DISPLAY_PANEL).Equals("savequery1"))
             {
                 pnl2_SaveQuerySelection.Style.Add("display", "inline-block");
                 pnl3_ShowSaveQueryUrl.Style.Add("display", "none");
                 return;
             }
         }
         pnl2_SaveQuerySelection.Style.Add("display", "none");
         pnl3_ShowSaveQueryUrl.Style.Add("display", "none");
     }
 }
コード例 #17
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get label orientation
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart label orientation</returns>
        private ChartSettings.OrientationType GetLabelOrientation(HttpContext context, ChartSettings settings)
        {
            if (QuerystringManager.GetQuerystringParameter(context, ChartParameters.LABELORIENTATION) != null)
            {
                switch (QuerystringManager.GetQuerystringParameter(context, ChartParameters.LABELORIENTATION).ToLower())
                {
                case "horizontal":
                    return(ChartSettings.OrientationType.Horizontal);

                case "vertical":
                    return(ChartSettings.OrientationType.Vertical);

                default:
                    break;
                }
            }

            return(settings.LabelOrientation);
        }
コード例 #18
0
        /// <summary>
        /// Determines if mandatory footnotes have already been displayed or not
        /// </summary>
        /// <returns>True if mandatory footnotes have been displayed, else false</returns>
        private bool MandatoryFootnotesDisplayed()
        {
            if (Session["promptmandatoryfootnotes"] == null)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(QuerystringManager.GetQuerystringParameter("px_tableid")))
            {
                return(false);
            }

            if (Session["promptmandatoryfootnotes"].ToString().Equals(QuerystringManager.GetQuerystringParameter("px_tableid")))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #19
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get guidelines
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart guidelines</returns>
        private ChartSettings.GuidelinesType GetGuidelines(HttpContext context, ChartSettings settings)
        {
            ChartSettings.GuidelinesType guidelines = ChartSettings.GuidelinesType.None;

            if ((QuerystringManager.GetQuerystringParameter(context, ChartParameters.GUIDELINES_HORIZONTAL) != null) || (QuerystringManager.GetQuerystringParameter(context, ChartParameters.GUIDELINES_VERTICAL) != null))
            {
                if (QuerystringManager.GetQuerystringParameter(context, ChartParameters.GUIDELINES_HORIZONTAL).ToLower() == "true")
                {
                    guidelines = guidelines | ChartSettings.GuidelinesType.Horizontal;
                }
                if (QuerystringManager.GetQuerystringParameter(context, ChartParameters.GUIDELINES_VERTICAL).ToLower() == "true")
                {
                    guidelines = guidelines | ChartSettings.GuidelinesType.Vertical;
                }

                return(guidelines);
            }

            return(settings.Guidelines);
        }
コード例 #20
0
ファイル: Menu.aspx.cs プロジェクト: petroslikidis/PxWeb
        protected void Page_Load(object sender, EventArgs e)
        {
            PCAxis.Web.Core.Management.PaxiomManager.PaxiomModelBuilder = null;
            PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel        = null;
            PCAxis.Web.Controls.VariableSelector.SelectedVariableValues.Clear();

            ((PxWeb)this.Master).FooterText = "Menu";

            Master.HeadTitle = PCAxis.Web.Core.Management.LocalizationManager.GetLocalizedString("PxWebTitleMenu");
            if (!Page.IsPostBack)
            {
                Master.SetBreadcrumb(PCAxis.Web.Controls.Breadcrumb.BreadcrumbMode.Menu);
                Master.SetNavigationFlowMode(PCAxis.Web.Controls.NavigationFlow.NavigationFlowMode.First);
                Master.SetNavigationFlowVisibility(PXWeb.Settings.Current.Navigation.ShowNavigationFlow);
                Master.SetH1TextDatabase();

                string msg = QuerystringManager.GetQuerystringParameter("msg");
                if (!string.IsNullOrWhiteSpace(msg))
                {
                    dialogModal.Visible = true;

                    dialogModal.Attributes["title"] = Master.GetLocalizedString(msg + "Title");
                    lblMsg.Text = Master.GetLocalizedString(msg + "Message");
                    if (PXWeb.Settings.Current.Menu.MenuMode == MenuModeType.TreeViewWithFiles)
                    {
                        //Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowModalDialog", "<script type='text/javascript'> jQuery(function() {var offset = jQuery('.AspNet-TreeView-Collapse:first').offset().top; jQuery('#" + dialogModal.ClientID + "').dialog({ width: 480, height: 200,  modal: true, position: ['top', offset], buttons: {" + Master.GetLocalizedString("PxWebPopupDialogClose") + ": function () {jQuery(this).dialog('close');} } }); });</script>  ");
                        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowModalDialog", "<script type='text/javascript'> jQuery(function() {var offset = jQuery('.AspNet-TreeView-Collapse:first').offset(); jQuery('#" + dialogModal.ClientID + "').dialog({ width: 480, height: 200,  modal: true, position: ['top', offset], buttons: {" + Master.GetLocalizedString("PxWebPopupDialogClose") + ": function () {jQuery(this).dialog('close');} } }); });</script>  ");
                    }
                    else
                    {
                        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowModalDialog", "<script type='text/javascript'> jQuery(function() { jQuery('#" + dialogModal.ClientID + "').dialog({ width: 480, height: 200,  modal: true, buttons: {" + Master.GetLocalizedString("PxWebPopupDialogClose") + ": function () {jQuery(this).dialog('close');} } }); });</script>  ");
                    }
                }

                PCAxis.Web.Core.Management.PaxiomManager.Clear();
                InitializeTableOfContent();
                InitializeTableList();
                InitializeSearch();
                SetLocalizedTexts();
            }
        }
コード例 #21
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get width
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart width</returns>
        private int GetWidth(HttpContext context, ChartSettings settings)
        {
            int width = 0;

            if (int.TryParse(QuerystringManager.GetQuerystringParameter(context, ChartParameters.WIDTH), out width))
            {
                if (width > 0)
                {
                    if (width > PXWeb.Settings.Current.Features.Charts.MaxWidth)
                    {
                        return(PXWeb.Settings.Current.Features.Charts.MaxWidth);
                    }
                    else
                    {
                        return(width);
                    }
                }
            }

            return(settings.Width);
        }
コード例 #22
0
ファイル: ChartHandler.ashx.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get height
        /// </summary>
        /// <param name="context">Http context</param>
        /// <param name="settings">Chart settings object</param>
        /// <returns>Chart height</returns>
        private int GetHeight(HttpContext context, ChartSettings settings)
        {
            int height = 0;

            if (int.TryParse(QuerystringManager.GetQuerystringParameter(context, ChartParameters.HEIGHT), out height))
            {
                if (height > 0)
                {
                    if (height > PXWeb.Settings.Current.Features.Charts.MaxHeight)
                    {
                        return(PXWeb.Settings.Current.Features.Charts.MaxHeight);
                    }
                    else
                    {
                        return(height);
                    }
                }
            }

            return(settings.Height);
        }
コード例 #23
0
ファイル: PxUrl.cs プロジェクト: trygu/PxWeb
        /// <summary>
        /// Get querystring or routedata value depending on if user friendly URL:s are used or not
        /// </summary>
        /// <param name="key">parameter key</param>
        /// <returns>Parameter value</returns>
        public static string GetParameter(string key)
        {
            if (PXWeb.Settings.Current.Features.General.UserFriendlyUrlsEnabled)
            {
                System.Web.UI.Page page = HttpContext.Current.Handler as System.Web.UI.Page;

                if (page != null)
                {
                    if (page.RouteData.Values[key] != null)
                    {
                        return(ValidationManager.GetValue(page.RouteData.Values[key].ToString()));
                    }
                }
            }
            else
            {
                if (QuerystringManager.GetQuerystringParameter(key) != null)
                {
                    return(QuerystringManager.GetQuerystringParameter(key));
                }
            }

            return(null);
        }
コード例 #24
0
ファイル: Selection.aspx.cs プロジェクト: trygu/PxWeb
        protected void Page_Load(object sender, EventArgs e)
        {
            //Path for selection should always contain tableid and not table name
            if (RouteInstance.RouteExtender != null && RouteInstance.RouteExtender.DoesSelectionPathContainTableName(this))
            {
                var linkItems = new List <LinkManager.LinkItem>();
                linkItems.Add(new LinkManager.LinkItem(PXWeb.PxUrl.TABLE_KEY, PxUrl.Table));
                string redirectLink = LinkManager.CreateLinkMethod("Selection.aspx", false, linkItems.ToArray());
                Response.Redirect(redirectLink, true);
            }

            if (RouteInstance.RouteExtender != null)
            {
                var  tableId      = RouteInstance.RouteExtender.GetTableIdByName(PxUrl.Table);
                bool hasTableData = RouteInstance.RouteExtender.HasTableData(tableId);

                if (!hasTableData)
                {
                    Response.Redirect(RouteInstance.RouteExtender.GetRedirectNoDataPath(tableId), true);
                }
            }

            ((PxWeb)this.Master).FooterText = "Selection";

            string lang  = PxUrl.Language;
            string db    = PxUrl.Database;
            string path  = PxUrl.Path;
            string table = PxUrl.Table;

            string partTable = "";

            //Check if the queryStrings contains partTable
            if (QuerystringManager.GetQuerystringParameter("partTable") != null)
            {
                partTable = QuerystringManager.GetQuerystringParameter("partTable");
            }
            // Bug 273
            // If we have no builder the groupings should be reloaded
            if (PCAxis.Web.Core.Management.PaxiomManager.PaxiomModelBuilder == null)
            {
                VariableSelector1.ReloadGroupings = true;
            }

            if (PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel != null)
            {
                _previousModel = PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel;
            }

            PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel = PXWeb.Management.PxContext.GetPaxiomForSelection(db, path, table, lang);

            if (!IsPostBack)
            {
                Master.HeadTitle = PCAxis.Web.Core.Management.LocalizationManager.GetLocalizedString("PxWebTitleSelection");
                imgShowInformationExpander.ImageUrl = Page.ClientScript.GetWebResourceUrl(typeof(BreadcrumbCodebehind), "PCAxis.Web.Controls.spacer.gif");
                imgShowFootnotesExpander.ImageUrl   = Page.ClientScript.GetWebResourceUrl(typeof(BreadcrumbCodebehind), "PCAxis.Web.Controls.spacer.gif");
                imgShowMetadataExpander.ImageUrl    = Page.ClientScript.GetWebResourceUrl(typeof(BreadcrumbCodebehind), "PCAxis.Web.Controls.spacer.gif");
                Master.SetBreadcrumb(PCAxis.Web.Controls.Breadcrumb.BreadcrumbMode.Selection);
                Master.SetNavigationFlowMode(PCAxis.Web.Controls.NavigationFlow.NavigationFlowMode.Second);
                Master.SetNavigationFlowVisibility(PXWeb.Settings.Current.Navigation.ShowNavigationFlow);
                InitializeVariableSelector();
                InitializeTableInformation();
                InitializeMetatags();
                InitializeMetadata(path);

                //Check if the queryStrings contains partTable and the database type is CNMM
                //if so download subtable variables
                if (!string.IsNullOrEmpty(partTable))
                {
                    DatabaseInfo dbi = PXWeb.Settings.Current.General.Databases.GetDatabase(db);
                    if (dbi.Type == PCAxis.Web.Core.Enums.DatabaseType.CNMM)
                    {
                        SetValuesFromPartTable(partTable);
                    }
                }
            }

            DisplayTableMetadataLinks();
            VariableSelector1.PxActionEvent += new PCAxis.Web.Controls.PxActionEventHandler(HandlePxAction);
            VariableSelector1.MetadataInformationSelected += new VariableSelector.MetadataInformationSelectedEventHandler(HandleMetaDataInformationAction);

            if (_previousModel != null && _previousModel.IsComplete && !IsPostBack)
            {
                VariableSelector1.InitializeSelectedValuesetsAndGroupings(_previousModel);
            }
        }