2 // System.Web.UI.WebControls.TemplateColumn.cs
5 // Gaurav Vaish (gvaish@iitk.ac.in)
6 // Andreas Nahr (ClassDevelopment@A-SoftTech.com)
8 // (C) Gaurav Vaish (2002)
9 // (C) 2003 Andreas Nahr
14 using System.ComponentModel;
\r
16 using System.Web.UI;
\r
18 namespace System.Web.UI.WebControls
\r
20 public class TemplateColumn : DataGridColumn
\r
22 private ITemplate editItemTemplate;
\r
23 private ITemplate footerTemplate;
\r
24 private ITemplate headerTemplate;
\r
25 private ITemplate itemTemplate;
\r
27 public TemplateColumn(): base()
\r
31 [DefaultValue (null), Browsable (false)]
32 [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
33 [WebSysDescription ("The template that is used to build that are being edited rows for this column.")]
\r
34 public virtual ITemplate EditItemTemplate
\r
38 return editItemTemplate;
\r
42 editItemTemplate = value;
\r
47 [DefaultValue (null), Browsable (false)]
48 [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
49 [WebSysDescription ("The template that is used to build the footer for this column.")]
\r
50 public virtual ITemplate FooterTemplate
\r
54 return footerTemplate;
\r
58 footerTemplate = value;
\r
63 [DefaultValue (null), Browsable (false)]
64 [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
65 [WebSysDescription ("The template that is used to build the header for this column.")]
\r
66 public virtual ITemplate HeaderTemplate
\r
70 return headerTemplate;
\r
74 headerTemplate = value;
\r
79 [DefaultValue (null), Browsable (false)]
80 [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
81 [WebSysDescription ("The template that is used to build rows for this column.")]
\r
82 public virtual ITemplate ItemTemplate
\r
86 return itemTemplate;
\r
90 itemTemplate = value;
\r
95 public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType)
\r
97 base.InitializeCell(cell, columnIndex, itemType);
\r
98 ITemplate toRender = null;
\r
101 case ListItemType.Header: toRender = headerTemplate;
\r
103 case ListItemType.Footer: toRender = footerTemplate;
\r
105 case ListItemType.SelectedItem:
106 case ListItemType.AlternatingItem:
107 case ListItemType.Item: toRender = itemTemplate;
\r
109 case ListItemType.EditItem:
110 toRender = (editItemTemplate != null ? editItemTemplate : itemTemplate);
\r
113 if(toRender != null)
\r
115 cell.Text = String.Empty;
\r
116 toRender.InstantiateIn(cell);
\r