void IRepeatInfoUser.RenderItem(ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer) { DataListItem item = this.GetItem(itemType, repeatIndex + this.offset); if (item != null) { item.RenderItem(writer, this.extractTemplateRows, repeatInfo.RepeatLayout == System.Web.UI.WebControls.RepeatLayout.Table); } }
void IRepeatInfoUser.RenderItem(ListItemType itemType, int repeatIndex, RepeatInfo repeatInfo, HtmlTextWriter writer) { // if possible take the easy way out... if (!HasControls()) { return; } DataListItem item = null; switch (itemType) { case ListItemType.Header: case ListItemType.Footer: item = FindFirstItem(itemType); break; case ListItemType.Item: case ListItemType.AlternatingItem: case ListItemType.SelectedItem: case ListItemType.EditItem: item = FindBestItem(repeatIndex); break; case ListItemType.Separator: item = FindSpecificItem(itemType, repeatIndex); break; } if (item != null) { bool extract = ExtractTemplateRows; bool table = (RepeatLayout == RepeatLayout.Table); if (!table || extract) { // sadly RepeatInfo doesn't support Style for RepeatLayout.Flow Style s = (this as IRepeatInfoUser).GetItemStyle(itemType, repeatIndex); if (s != null) { item.ControlStyle.CopyFrom(s); } } //Console.WriteLine ("RenderItem #{0} type {1}", repeatIndex, itemType); item.RenderItem(writer, extract, table); } else { //Console.WriteLine ("Couldn't find #{0} type {1} out of {2} items / {3} controls", repeatIndex, itemType, Items.Count, Controls.Count); } }