如何自定义一个模板列,并在后台加载

 

public class EditTemplateColumn : ITemplate
{
    public EditTemplateColumn(string colname)
    {
        m_strColName = colname;
    }
    public void InstantiateIn(Control container)
    {
        Label edt = new Label();
        edt.DataBinding += new EventHandler(this.OnDataBinding);
        container.Controls.Add(edt);
    }
    public void OnDataBinding(object sender, EventArgs e)
    {
        Label edt = (Label )sender;
        DataGridItem container = (DataGridItem)edt.NamingContainer;
        edt.Text = DataBinder.Eval(container, "DataItem." + this.m_strColName).ToString();
       // edt.Text = ((DataRowView)container.DataItem)[m_strColName].ToString();
    }

    private string m_strColName;
}
 
加载
 protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        TemplateColumn obj = new TemplateColumn();
        obj.ItemTemplate = new EditTemplateColumn("Birthday");
        obj.HeaderText = "itemTemplete";
       
        this.DataGrid1.Columns.Add(obj);
    }

posted on 2006-11-15 12:44  戴玮  阅读(242)  评论(0编辑  收藏  举报

导航