protected override void RenderContent(HtmlTextWriter writer) { if(Utility.IsEmptyCollection(this.DataSource)) { if(_emptyTemplate != null) { using(var literal = new Literal()) { _emptyTemplate.InstantiateIn(literal); literal.RenderControl(writer); } } return; } IEnumerable dataItems = this.DataSource as IEnumerable; if(dataItems == null || dataItems.GetType() == typeof(string)) { var item = new DataItemContainer<ListView>(this, this.DataSource, 0); this.RenderItem(writer, item); } else { int index = 0; foreach(var dataItem in dataItems) { FormExtension.PushDataItem(this.Page, dataItem, index); var item = new DataItemContainer<ListView>(this, dataItem, index++); this.RenderItem(writer, item); FormExtension.PopDataItem(this.Page); } } }
protected override void RenderEndTag(HtmlTextWriter writer) { if(_footerTemplate != null) { using(var literal = new Literal()) { _footerTemplate.InstantiateIn(literal); literal.RenderControl(writer); } } if(this.RenderMode != ListRenderMode.None) writer.RenderEndTag(); }
protected override void RenderBeginTag(HtmlTextWriter writer) { var tagName = string.Empty; switch(this.RenderMode) { case ListRenderMode.List: tagName = "dl"; break; case ListRenderMode.BulletList: tagName = "ul"; break; case ListRenderMode.OrderedList: tagName = "ol"; break; } if(!string.IsNullOrWhiteSpace(tagName)) { if(!string.IsNullOrWhiteSpace(this.ID)) writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ID); if(!string.IsNullOrWhiteSpace(this.CssClass)) writer.AddAttribute(HtmlTextWriterAttribute.Class, this.CssClass); writer.RenderBeginTag(tagName); } if(_headerTemplate != null) { using(var literal = new Literal()) { _headerTemplate.InstantiateIn(literal); literal.RenderControl(writer); } } }
public virtual Control ToHtmlControl() { Literal control = null; if(this.Dimension != Dimension.None) this.CssClass = ":" + this.Dimension.ToString(); if(string.IsNullOrWhiteSpace(this.ImageUrl)) { if(!string.IsNullOrWhiteSpace(this.Icon)) { var css = Utility.ResolveCssClass(":" + this.Icon, () => this.CssClass); control = new Literal("i", "icon" + (string.IsNullOrWhiteSpace(css) ? "" : " " + css)); } } else { control = new Literal("img", "image"); control.SetAttributeValue("src", this.ImageUrl); if(!string.IsNullOrWhiteSpace(this.Placeholder)) control.SetAttributeValue("alt", this.Placeholder); if(!Unit.IsEmpty(this.Width)) control.SetAttributeValue("width", this.Width.ToString()); if(!Unit.IsEmpty(this.Height)) control.SetAttributeValue("height", this.Height.ToString()); if(!string.IsNullOrWhiteSpace(this.CssClass)) control.CssClass = this.CssClass; } if(control == null) return new Literal(); if(string.IsNullOrWhiteSpace(this.NavigateUrl)) return control; var container = new Literal("a", "image"); container.SetAttributeValue("href", this.NavigateUrl); container.Controls.Add(control); return container; }
public static ICollection<Control> GenerateParts(ICollection<ViewPart> parts, Func<ViewPart, Control> containerThunk) { if(containerThunk == null) throw new ArgumentNullException(); if(parts == null || parts.Count < 1) return null; var containers = new List<Control>(); Control container = null; foreach(var part in parts) { if(containers.Count == 0 || (string.IsNullOrWhiteSpace(part.Text) && string.IsNullOrWhiteSpace(part.Icon))) { container = containerThunk(part); if(container != null) containers.Add(container); } Literal wrapper = null; var css = Utility.ResolveCssClass(part.Alignment == HorizontalAlignment.Right ? ":right floated" : string.Empty, () => part.CssClass); if(string.IsNullOrWhiteSpace(part.NavigateUrl)) wrapper = new Literal("span", css); else { wrapper = new Literal("a", css); wrapper.SetAttributeValue("href", part.NavigateUrl); } if(!string.IsNullOrWhiteSpace(part.Style)) wrapper.SetAttributeValue("style", part.Style); if(part.Properties.Count > 0) { foreach(var property in part.Properties) { wrapper.SetAttributeValue(property.Name, property.Value); } } container.Controls.Add(wrapper); if(part.IconAlignment == HorizontalAlignment.Left) { if(!string.IsNullOrWhiteSpace(part.Icon)) (wrapper ?? container).Controls.Add(new Literal("i", part.Icon + " icon")); (wrapper ?? container).Controls.Add(new Literal() { Text = part.Text, }); } else { (wrapper ?? container).Controls.Add(new Literal() { Text = part.Text, }); if(!string.IsNullOrWhiteSpace(part.Icon)) (wrapper ?? container).Controls.Add(new Literal("i", part.Icon + " icon")); } } return containers; }
protected override void CreateHeaderContent(Control container) { if(this.Image != null) { if(string.IsNullOrWhiteSpace(this.Image.NavigateUrl)) { var imageCss = "ui top aligned image"; if(this.Image.Dimension != Dimension.None && !string.IsNullOrWhiteSpace(this.Image.ImageUrl)) imageCss = "ui top aligned " + this.Image.Dimension.ToString() + " image"; var literal = new Literal("div", imageCss); container.Controls.Add(literal); container = literal; } container.Controls.Add(this.Image.ToHtmlControl()); } }