/// <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); }
/// <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; }
/// <summary> /// 通过页面输出模式,构造出UniqueID为controlUniqueID的控件输出模式 /// </summary> /// <param name="pageRenderMode">页面输出模式</param> /// <remarks>通过页面输出模式,构造出UniqueID为controlUniqueID的控件输出模式</remarks> public ControlRenderMode(PageRenderMode pageRenderMode) : this() { LoadFromPageRenderMode(pageRenderMode); }