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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }