protected override void PrepareControlHierarchy ()
{
if (!HasControls () || Controls.Count == 0)
return; // No one called CreateControlHierarchy() with DataSource != null
Table rt = render_table;
rt.CopyBaseAttributes (this);
rt.ApplyStyle (ControlStyle);
rt.Caption = Caption;
rt.CaptionAlign = CaptionAlign;
rt.Enabled = IsEnabled;
bool top_pager = true;
foreach (DataGridItem item in rt.Rows) {
switch (item.ItemType) {
case ListItemType.Item:
ApplyItemStyle (item);
break;
case ListItemType.AlternatingItem:
ApplyItemStyle (item);
break;
case ListItemType.EditItem:
item.MergeStyle (edit_item_style);
ApplyItemStyle (item);
ApplyColumnStyle (item.Cells, ListItemType.EditItem);
break;
case ListItemType.Footer:
if (!ShowFooter) {
item.Visible = false;
break;
}
if (footer_style != null)
item.MergeStyle (footer_style);
ApplyColumnStyle (item.Cells, ListItemType.Footer);
break;
case ListItemType.Header:
if (!ShowHeader) {
item.Visible = false;
break;
}
if (header_style != null)
item.MergeStyle (header_style);
ApplyColumnStyle (item.Cells, ListItemType.Header);
break;
case ListItemType.SelectedItem:
item.MergeStyle (selected_style);
ApplyItemStyle (item);
ApplyColumnStyle (item.Cells, ListItemType.SelectedItem);
break;
case ListItemType.Separator:
ApplyColumnStyle (item.Cells, ListItemType.Separator);
break;
case ListItemType.Pager:
DataGridPagerStyle ps = PagerStyle;
if (ps.Visible == false || !paged_data_source.IsPagingEnabled) {
item.Visible = false;
} else {
if (top_pager)
item.Visible = (ps.Position != PagerPosition.Bottom);
else
item.Visible = (ps.Position != PagerPosition.Top);
top_pager = false;
}
if (item.Visible)
item.MergeStyle (pager_style);
break;
}
}
}