public class GridViewTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;
private string dataField;
public GridViewTemplate(DataControlRowType type, string colname, string datafield)
{
templateType = type;
columnName = colname;
dataField = datafield;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
Label lbl = new Label();
lbl.ID = container.ClientID;
lbl.DataBinding += new EventHandler(lbl_DataBinding);
container.Controls.Add(lbl);
break;
default:
break;
}
}
private void lbl_DataBinding(object sender, EventArgs e)
{
Label lbl = (Label)sender;
lbl.Width = Unit.Percentage(100);
GridViewRow container = (GridViewRow)lbl.NamingContainer;
lbl.Text = ((DataRowView)container.DataItem)[dataField].ToString();
lbl.Width = Unit.Pixel(70);
lbl.Style.Add("TEXT-ALIGN", "right");
}
}