Ejemplo n.º 1
0
        /// <summary>
        /// Метод загружающий ViewState из базы данных и размещающий его на странице.
        /// </summary>
        public override void Load()
        {
            // Load Whatever is there in the __VIEWSTATE hidden variables.
            base.Load();

            // Если включен постринченый режим применения проверяем помечена страница или нет
            try
            {
                if (_viewStateElement.ApplayByCustomPageOnly && !(Page is IStsStatePersistedPage))
                {
                    return;
                }

                string currentViewState = ViewState.ToString();

                // Проверяем что ViewState это GUID, для этого достаточно проверить,
                // что количество знаков равно 36
                if (currentViewState.Length == 36)
                {
                    StsViewState vs = null;

                    if (_viewStateElement.UseCacheForSqlMode)
                    {
                        //string cacheKey = VIEWSTATE_CACHEKEY_PREFIX + base.ViewState;
                        //try { vs = GetFromCache(cacheKey); }
                        //catch { }
                        throw new NotImplementedException("Механизм кэширования PageState еще не реализован.");
                    }

                    if (vs == null)
                    {
                        vs = LoadFromSql(currentViewState);
                    }

                    if (_viewStateElement.UseCompression)
                    {
                        throw new NotImplementedException("Механизм сжатия PageState еще не реализован.");
                    }

                    Deserialize(vs.Data);
                }
            }
            catch (Exception e)
            {
                if (!Globals.Settings.ExceptionHandling.SendExceptionEmails)
                {
                    throw;
                }

                QDSearch.Helpers.ExceptionHandling.SendErrorMessage(
                    new ApplicationException(
                        "Ошибка загрузки состояния страницы, пользователь перенаправлен на начальную страницу.", e));
                //QDSearch.Helpers.Web.ShowMessageWithRedirect(Page, @"К сожалению, страница устарела. Для продолжения работы страница будет перезагружена.", Page.ResolveClientUrl(@"~/"));
                Page.Response.Redirect(Page.ResolveClientUrl(@"~/"), true);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 加载ViewState。如果ViewState的尺寸小于配置信息中的值(缺省为10K),从隐藏域中加载,否则从数据库中加载
        /// </summary>
        public override void Load()
        {
            string data = this.Page.Request.Form["__VIEWSTATE"];

            if (string.IsNullOrEmpty(data) == false)
            {
                #region 注释掉原有的逻辑
                //Pair statePair = (Pair)StateFormatter.Deserialize(data);
                //ControlState = statePair.Second;
                //ViewState = statePair.First;
                #endregion

                long id;
                if (long.TryParse(ViewState.ToString(), out id))
                {
                    string stateStr = LoadStateFromDB(id);
                    ViewState = StateFormatter.Deserialize(stateStr);
                }
            }
        }
Ejemplo n.º 3
0
 private void BtnSubmit_Click(object sender, EventArgs e)
 {
     try
     {
         bool isValid = true;
         SaveCorpus(ref isValid);
         if (isValid)
         {
             ClearControls();
             if (ViewState.ToString() != "0")//如果是编辑,则返回到查询
             {
                 divEditCorpora.Visible   = false;
                 divEditCorporaAc.Visible = false;
                 divList.Visible          = true;
                 ReQuery();
             }
         }
     }
     catch (Exception ex)
     {
         lbErr.Text = ex.ToString();
     }
 }
        private string GetResultTextBoxText(ViewState viewState)
        {
            switch (viewState)
            {
            case ViewState.None:
                return(string.Empty);

            case ViewState.Encode:
                return(isBytesView ? GetHEXString(encodedBytes) : encodedText);

#if NOISE_DECODE_ENABLE
            case ViewState.Noise:
                return(isBytesView ? GetHEXString(noisedBytes) : noisedText);

            case ViewState.Decode:
                return(isBytesView ? GetHEXString(decodedBytes) : decodedText);
#endif
            default:
                throw new InvalidEnumArgumentException(string.Format("Unhandled argument: {0}", viewState.ToString()));
            }
        }