/// <summary> /// Renders the partial. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="path">The path.</param> /// <param name="model">The model.</param> public void RenderPartial <T>(string path, T model) { var item = Sitecore.Context.Database.GetItem(path); Assert.IsNotNull(item, "Could not find rendering item {0}".Formatted(path)); var parameters = new NameValueCollection(); foreach (Field field in item.Fields) { parameters.Add(field.Name, field.Value); } Control control; if (item.TemplateID == SitecoreIds.GlassBehindRazorId) { var renderType = new BehindRazorRenderingType(); control = renderType.GetControl(parameters, false); } else { var renderType = new PartialRazorRenderingType(); control = renderType.GetControl(parameters, false); if (control is PartialControl) { control.CastTo <PartialControl>().SetModel(model); } } var webControl = control as WebControl; webControl.RenderControl(_writer); }
/// <summary> /// Renders the specified writer. /// </summary> /// <param name="writer">The writer.</param> public override void Render(System.IO.TextWriter writer) { WebControl control = BehindRazorRenderingType.CreateControl(Path, Type, Assembly, ContextName) as WebControl; if (control != null) { HtmlTextWriter htmlWriter = new HtmlTextWriter(writer); control.DataSource = this.DataSource; control.RenderControl(htmlWriter); } }
/// <summary> /// Renders the specified writer. /// </summary> /// <param name="writer">The writer.</param> public override void Render(System.IO.TextWriter writer) { WebControl control = BehindRazorRenderingType.CreateControl(Path, Type, Assembly, ContextName) as WebControl; if (control != null) { control.Parameters = Sitecore.Mvc.Presentation.RenderingContext.CurrentOrNull.Rendering[Sc.GlassHtml.Parameters] ?? string.Empty; HtmlTextWriter htmlWriter = new HtmlTextWriter(writer); control.DataSource = this.DataSource; control.RenderControl(htmlWriter); } }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { var item = Sitecore.Context.Database.GetItem(Path); if (item == null) { return; } NameValueCollection parameters = new NameValueCollection(); foreach (Field field in item.Fields) { parameters.Add(field.Name, field.Value); } IRenderingType renderType = null; if (item.TemplateID == SitecoreIds.GlassBehindRazorId) { renderType = new BehindRazorRenderingType(); } else if (item.TemplateID == SitecoreIds.GlassDynamicRazorId) { renderType = new DynamicRazorRenderingType(); } else if (item.TemplateID == SitecoreIds.GlassTypedRazorId) { renderType = new TypedRazorRenderingType(); } _control = renderType.GetControl(parameters, false) as WebControl; _control.DataSource = this.DataSource; this.Controls.Add(_control); base.OnLoad(e); }