Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ctr"></param>
        /// <returns></returns>
        public static ControlRenderMode GetControlRenderMode(Control ctr)
        {
            PageRenderMode    pageRenderMode = WebUtility.GetRequestPageRenderMode();
            ControlRenderMode renderMode     = new ControlRenderMode(pageRenderMode);

            PageRenderModePageCache currentPageCache = PageRenderModeHelper.GetPageRenderModeCache(ctr.Page);
            PageRenderModePageCache requestPageCache = renderMode.PageCache;

            int    currentPageLevel    = GetPageLevel(currentPageCache);
            string currentPageUniqueID = GetPageUniqueID(currentPageCache);
            int    requestPageLevel    = GetPageLevel(requestPageCache);
            string requestPageUniqueID = GetPageUniqueID(requestPageCache);

            if (requestPageLevel == currentPageLevel)
            {
                if (ctr.UniqueID == pageRenderMode.RenderControlUniqueID)
                {
                    renderMode.OnlyRenderSelf = true;
                }
            }
            else if (requestPageLevel > currentPageLevel)
            {
                string id = requestPageUniqueID.Split(',')[currentPageLevel];

                if (ctr.UniqueID == id)
                {
                    renderMode.OnlyRenderSelf = true;
                }
            }

            return(renderMode);
        }
Example #2
0
 /// <summary>
 /// 通过页面输出状态,加载控件的输出状态
 /// </summary>
 /// <param name="pageRenderMode">页面输出模式</param>
 /// <remarks>通过页面输出状态,加载控件的输出状态</remarks>
 public void LoadFromPageRenderMode(PageRenderMode pageRenderMode)
 {
     //if (!string.IsNullOrEmpty(controlUniqueID) && controlUniqueID == pageRenderMode.RenderControlUniqueID)
     //{
     //    this._OnlyRenderSelf = true;
     //}
     this._UseNewPage         = pageRenderMode.UseNewPage;
     this._ContentTypeKey     = pageRenderMode.ContentTypeKey;
     this._DispositionType    = pageRenderMode.DispositionType;
     this._AttachmentFileName = pageRenderMode.AttachmentFileName;
     this._PageCache          = pageRenderMode.PageCache;
     this._RenderArgument     = pageRenderMode.RenderArgument;
 }
Example #3
0
 /// <summary>
 /// 通过页面输出模式,构造出UniqueID为controlUniqueID的控件输出模式
 /// </summary>
 /// <param name="pageRenderMode">页面输出模式</param>
 /// <remarks>通过页面输出模式,构造出UniqueID为controlUniqueID的控件输出模式</remarks>
 public ControlRenderMode(PageRenderMode pageRenderMode)
     : this()
 {
     LoadFromPageRenderMode(pageRenderMode);
 }