using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace WebBlocks { public class TextBoxField : DataControlField { public TextBoxField() { } protected override DataControlField CreateField() { return new TextBoxField(); } public string DataField { get { return (string)ViewState["DataField"]; } set { ViewState["DataField"] = value; } } public string DataFormatString { get { return (string)ViewState["DataFormatString"]; } set { ViewState["DataFormatString"] = value; } } public bool IsSelectorItem { get { return (ViewState["IsSelectorItem"] == null ? true : (bool)ViewState["IsSelectorItem"]); } set { ViewState["IsSelectorItem"] = value; } } public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) { switch (cellType) { case DataControlCellType.Header: Literal li = new Literal(); li.Text = HeaderText; cell.Controls.Add(li); break; case DataControlCellType.DataCell: TextBox tb = new TextBox(); if (ItemStyle.Width != null) tb.Width = ItemStyle.Width; tb.DataBinding += new EventHandler(tb_DataBinding); cell.Controls.Add(tb); break; default: break; } } private void tb_DataBinding(object sender, EventArgs e) { TextBox tb = (TextBox)sender; GridViewRow row = (GridViewRow)tb.NamingContainer; if (DataFormatString != null) tb.Text = DataBinder.Eval(row.DataItem, DataField, DataFormatString).ToString(); else tb.Text = DataBinder.Eval(row.DataItem, DataField).ToString(); } } }