Пример #1
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.PreRender"></see> event.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs"></see> object that contains the event data.</param>
        protected override void OnPreRender(EventArgs e)
        {
            // Bubble effect
            if (Equals(m_EventRanpreRender, true))
            {
                return;
            }
            if (Trace.IsTracing)
            {
                Trace.Trace("Start PreRender()");
            }

            if (m_EventRanLoad == false)
            {
                if (Trace.IsTracing)
                {
                    Trace.Trace("Running onLoad event from onPreRender event");
                }
                OnLoad(new EventArgs());
            }
            m_EventRanpreRender = true;

            if (MasterWebGrid != null && RequiredbyMasterWebGrid() == false)
            {
                return;
            }

            if (Trace.IsTracing)
            {
                Trace.Trace("base.OnPreRender({0})", ID);
            }

            if (m_IsRecordUpdateRows)
            {
                UpdateRowsClickEvent();
                ReLoadData = true;
            }
            else if (m_UpdateRow != null && m_UpdateRow.Length > 0)
            {
                UpdateRowClickEvent(m_UpdateRow);

                if (m_ResetEditIndex)
                {
                    InternalId = null;
                }

                ReLoadData = true;
            }

            base.OnPreRender(e);

            //BUG: Make SubmitGridOnEnter work without '???_wgupdaterecord' and '???_wgupdaterecords'.
            if (UseSubmitBehavior && !DesignMode)
            {
                switch (DisplayView)
                {
                case DisplayView.Detail:
                    Attributes.Add("onkeydown", string.Format("return SubmitGridOnEnter(event,'{0}_wgupdaterecord');", ID));
                    break;

                default:
                    Attributes.Add("onkeydown", string.Format("return SubmitGridOnEnter(event,'{0}_wgupdaterecords');", ID));
                    break;
                }
            }
            SetupGridRelations();
            if (CacheGridStructure)
            {
                MasterTable.SaveDataStructure();
            }
            if (ReLoadData)
            {
                //Clean-up
                if (InternalId != null && DisplayView == DisplayView.Grid)
                {
                    InternalId = null;
                }
                if (Debug)
                {
                    m_DebugString.AppendFormat("<b>ReloadingData ({0})</b> -  DataSource: {1}<br/>", ID, DataSourceId);
                }
                MasterTable.GetData(true);

                if (SlaveGrid.Count > 0)
                {
                    SlaveGrid.ForEach(delegate(Grid grid) { grid.ReLoadData = true; });
                }
            }

            ViewState["LastGridMode"] = DisplayView;
            //Saving group state;
            GroupState = GroupState;

            if (Trace.IsTracing)
            {
                Trace.Trace("Start DisableShowRequiredIconIfThereIsNoRequiredFields({0});", ID);
            }
            // Disable DisplayRequiredColumn if there is no required fields in the table
            DisableShowRequiredIconIfThereIsNoRequiredFields();
            if (Trace.IsTracing)
            {
                Trace.Trace("Finished DisableShowRequiredIconIfThereIsNoRequiredFields({0});", ID);
            }

            if (Trace.IsTracing)
            {
                Trace.Trace("Start errors.Render({0});", ID);
            }

            //   SystemMessage.m_Panel = m_SystemMessagePanel;

            // If Data is not loaded yet.. do it before rendering errors..
            if (m_MasterTable.m_GotData == false)
            {
                MasterTable.GetData(false);
            }

            if (IsDemo)
            {
                if (!Security.IsLocal && new Random().Next(1, 7) == 3)
                {
                    SystemMessage.Add(
                        "For full version register at <a href=\"http://www.webgrid.com\"><b>WebGrid Support Account</b></a>.");

                    if (DisplayView == DisplayView.Detail && Page != null && Page.ClientScript != null)
                    {
                        const string alert = "alert('For full version register at www.webgrid.com');";
                        if (EnableCallBack && Anthem.Manager.IsCallBack)
                        {
                            Anthem.Manager.AddScriptForClientSideEval(alert);
                        }
                        else
                        {
                            Page.ClientScript.RegisterClientScriptBlock(GetType(), "AlertScript", alert, true);
                        }
                    }
                }
            }

            LoadLanguage();
            SystemMessages.ForEach(delegate(SystemMessageItem key)
            {
                if (key is OverrideSystemMessage)
                {
                    SetSystemMessage(
                        ((OverrideSystemMessage)key).SystemMessageID.ToString(),
                        key.DisplayText,
                        key.CssClass);
                }
            });

            // This should move in the future.
            //SetupGridFilterByColumns();
            SetupGridMessages();
            SetupGridScripts();

            m_DesignRender.Render();

            if (Trace.IsTracing)
            {
                Trace.Trace("Finished errors.Render({0});", ID);
            }

            UpdateDebug();

            //	bool AllRows = (System.Web.HttpContext.Current.RequestQueryString("AllRows"] != null && System.Web.HttpContext.Current.RequestQueryString("AllRows") == "1");
            if (m_DoExcelExport)
            {
                Excel.StreamToBrowser(Page, MasterTable, ExportFileName, Excel.ExcelFile(MasterTable, true));
            }
            BindDataSourceSession();
            if (Trace.IsTracing)
            {
                Trace.Trace("Finish PreRender. Rows Rendered: {0}", MasterTable.Rows.Count);
            }
        }