private void RenderModule()
        {
            if (ReportSet == null)
            {
                return;
            }

            try
            {
                RetrieveParameterValuesFromControls();

                if (!(Page.IsPostBack || UrlBasedPagingActive()))
                {
                    if (CurrentlyInFullscreen())
                    {
                        RetrieveParameterValuesFromQueryString();
                    }

                    // first time shown
                    _DrilldownStack.Clear();
                    if ((NoParameters() && ReportSet.RenderMode != RenderMode_Popup) || (NoParameters() && ReportSet.RenderMode != RenderMode_NewWindow) || CurrentlyInFullscreen() || (ReportSet.AutoRun && !(ReportSet.RenderMode == RenderMode_Popup || ReportSet.RenderMode == RenderMode_NewWindow)))
                    {
                        var state = new DrilldownState((ArrayList)(Parameters.Clone()));
                        _DrilldownStack.Push(state);                         // initial reports that aren't drilldowns
                    }
                }

                RenderPage();
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
        }
        public void RefreshReport()
        {
            // going forward from parameters to first level report
            var state = new DrilldownState((ArrayList)(Parameters.Clone()));

            // clear panel
            pnlReportSet.Controls.Clear();
            _DrilldownStack.Clear();
            _DrilldownStack.Push(state);
            RenderPage();
        }
        private void OnDrilldown(Object sender, DrilldownEventArgs e)
        {
            var state = new DrilldownState(Convert.ToInt32(e.ReportId), (string)e.Name, (ArrayList)(Parameters.Clone()));

            // add datarow as parameters
            var columnIndex = 0;

            for (columnIndex = 0; columnIndex <= e.Value.ItemArray.Length - 1; columnIndex++)
            {
                var pi = new ParameterInfo();
                pi.ParameterName = (string)(e.Value.Table.Columns[columnIndex].ColumnName);
                pi.Values        = new List <string>(new string[] { e.Value[columnIndex].ToString() });

                state.Parameters.Add(pi);
            }
            _DrilldownStack.Push(state);
            // clear panel
            pnlReportSet.Controls.Clear();
            // render again
            RenderPage();
        }