protected override void CreateChildControls() { if (Cacheable && CanCache && IsInCache) { return; } if (ShowExecutionTime) { Timer.Start(); } Content rootContent = null; Exception controlException = null; try { rootContent = GetModel() as Content; if (rootContent != null) { rootContent.ChildrenDefinition.AllChildren = AllChildren; } } catch (Exception ex) { SnLog.WriteException(ex); controlException = ex; } var model = new ContentCollectionViewModel { State = this.State }; try { var childCount = 0; if (rootContent != null) { try { childCount = rootContent.Children.Count(); } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } } } try { model.Pager = GetPagerModel(childCount, State, string.Empty); } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } // in case of error, set dummy pager model model.Pager = new PagerModel(0, State, string.Empty); } model.ReferenceAxisName = CollectionAxis == CollectionAxisMode.ReferenceProperty ? ReferenceAxisName : null; model.Content = rootContent; if (RenderingMode == RenderMode.Xslt) { XmlModelData = model.ToXPathNavigator(); } else if (RenderingMode == RenderMode.Ascx || RenderingMode == RenderMode.Native) { // the Renderer property may contain a skin-relative path var viewPath = RenderingMode == RenderMode.Native ? "/root/Global/Renderers/ContentCollectionView.ascx" : SkinManager.Resolve(Renderer); Control presenter = null; try { var viewHead = NodeHead.Get(viewPath); if (viewHead != null && SecurityHandler.HasPermission(viewHead, PermissionType.RunApplication)) { presenter = Page.LoadControl(viewPath); } // we may display a message if the user does not have enough permissions for the view } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } } if (presenter != null) { var ccView = presenter as ContentCollectionView; if (ccView != null) { ccView.Model = model; } if (rootContent != null) { var itemlist = presenter.FindControl(ContentListID); if (itemlist != null) { try { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist, rootContent.Children); } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } } } } var itemPager = presenter.FindControl("ContentListPager"); if (itemPager != null) { try { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager, model.Pager.PagerActions); } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } } } Controls.Clear(); Controls.Add(presenter); } } } catch (Exception ex) { SnLog.WriteException(ex); if (controlException == null) { controlException = ex; } } try { if (controlException != null) { BuildErrorMessage(controlException); } } catch (Exception ex) { var errorText = SR.GetString(SR.Portlets.ContentCollection.ErrorLoadingContentView, HttpUtility.HtmlEncode(ex.Message)); this.Controls.Clear(); this.Controls.Add(new LiteralControl(errorText)); } ChildControlsCreated = true; if (ShowExecutionTime) { Timer.Stop(); } }
protected override void CreateChildControls() { if (Cacheable && CanCache && IsInCache) return; if (ShowExecutionTime) Timer.Start(); Content modelData; try { modelData = GetModel() as Content; } catch (Exception ex) { Logger.WriteException(ex); Controls.Clear(); Controls.Add(new LiteralControl("ContentView error: " + ex.Message)); if (ShowExecutionTime) Timer.Stop(); return; } var rootContent = modelData as Content; if (rootContent != null) rootContent.AllChildren = AllChildren; var model = new ContentCollectionViewModel { State = this.State }; try { var childCount = rootContent != null ? rootContent.ChildCount : 0; model.Pager = GetPagerModel(childCount, State, string.Empty); model.ReferenceAxisName = CollectionAxis == CollectionAxisMode.ReferenceProperty ? ReferenceAxisName : null; if (RenderingMode == RenderMode.Xslt) { try { XmlModelData = model.ToXPathNavigator(); } catch (Exception ex) { Logger.Write(ex.ToString()); Logger.WriteException(ex); } } else if (RenderingMode == RenderMode.Ascx || RenderingMode == RenderMode.Native) { model.Content = rootContent; var viewPath = RenderingMode == RenderMode.Native ? "/root/Global/Renderers/ContentCollectionView.ascx" : Renderer; Controls.Clear(); try { var presenter = Page.LoadControl(viewPath); if (presenter is ContentCollectionView) { ((ContentCollectionView)presenter).Model = model; } if (rootContent != null) { var itemlist = presenter.FindControl(ContentListID); if (itemlist != null) { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist, rootContent.Children); } } var itemPager = presenter.FindControl("ContentListPager"); if (itemPager != null) { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager, model.Pager.PagerActions); } Controls.Add(presenter); } catch (Exception ex) { Logger.WriteException(ex); Controls.Clear(); Controls.Add(new LiteralControl("Please select a content view")); } } } catch (ParserException ex) { var errorText = new LiteralControl { Text = ex.Message }; Controls.Add(errorText); } catch (Exception ex) { var errorText = new LiteralControl { Text = ex.ToString() }; Controls.Add(errorText); } ChildControlsCreated = true; if (ShowExecutionTime) Timer.Stop(); }
protected override void CreateChildControls() { if (Cacheable && CanCache && IsInCache) { return; } if (ShowExecutionTime) { Timer.Start(); } Content modelData; try { modelData = GetModel() as Content; } catch (Exception ex) { Logger.WriteException(ex); Controls.Clear(); Controls.Add(new LiteralControl("ContentView error: " + ex.Message)); if (ShowExecutionTime) { Timer.Stop(); } return; } var rootContent = modelData as Content; if (rootContent != null) { rootContent.AllChildren = AllChildren; } var model = new ContentCollectionViewModel { State = this.State }; try { var childCount = rootContent != null ? rootContent.ChildCount : 0; model.Pager = GetPagerModel(childCount, State, string.Empty); model.ReferenceAxisName = CollectionAxis == CollectionAxisMode.ReferenceProperty ? ReferenceAxisName : null; if (RenderingMode == RenderMode.Xslt) { try { XmlModelData = model.ToXPathNavigator(); } catch (Exception ex) { Logger.Write(ex.ToString()); Logger.WriteException(ex); } } else if (RenderingMode == RenderMode.Ascx || RenderingMode == RenderMode.Native) { model.Content = rootContent; var viewPath = RenderingMode == RenderMode.Native ? "/root/Global/Renderers/ContentCollectionView.ascx" : Renderer; Controls.Clear(); try { var presenter = Page.LoadControl(viewPath); if (presenter is ContentCollectionView) { ((ContentCollectionView)presenter).Model = model; } if (rootContent != null) { var itemlist = presenter.FindControl(ContentListID); if (itemlist != null) { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemlist, rootContent.Children); } } var itemPager = presenter.FindControl("ContentListPager"); if (itemPager != null) { ContentQueryPresenterPortlet.DataBindingHelper.SetDataSourceAndBind(itemPager, model.Pager.PagerActions); } Controls.Add(presenter); } catch (Exception ex) { Logger.WriteException(ex); Controls.Clear(); Controls.Add(new LiteralControl("Please select a content view")); } } } catch (ParserException ex) { var errorText = new LiteralControl { Text = ex.Message }; Controls.Add(errorText); } catch (Exception ex) { var errorText = new LiteralControl { Text = ex.ToString() }; Controls.Add(errorText); } ChildControlsCreated = true; if (ShowExecutionTime) { Timer.Stop(); } }