http://www.tripleasp.net/tutorial.aspx?NavID=27http://www.dotnetbips.com/displayarticle.aspx?id=84
http://www.dotnetbips.com/displayarticle.aspx?id=85more:
http://www.datagridgirl.com/articles.aspx

解决方案 »

  1.   

    这是icyer写得:首先,新加入一个类:GenericItem.csusing System;using System.Web;using System.Data;using System.Web.UI;using System.Web.UI.WebControls;public class GenericItem : ITemplate{    private string column;    public GenericItem(string column)    {        this.column = column;    }    public void InstantiateIn(Control container)    {        TextBox txt = new TextBox();        txt.DataBinding += new EventHandler(this.BindData);        container.Controls.Add(txt);    }    public void BindData(object sender, EventArgs e)    {        TextBox txt = (TextBox)sender;        DataGridItem container = (DataGridItem)txt.NamingContainer;        txt.Text = ((DataRowView)container.DataItem)[column].ToString();    }}然后,在一个WebForm中加入一个DataGrid,ID为DataGrid1再然后,在.aspx.cs中加入以下代码:private void Page_Load(object sender, System.EventArgs e){    SqlConnection conn = new SqlConnection("server=icyer;uid=sa;pwd=;database=pubs;");    conn.Open();    SqlDataAdapter da = new SqlDataAdapter("select au_id, au_lname, au_fname from authors order by au_id", conn);    DataSet ds = new DataSet();    da.Fill(ds);    TemplateColumn tc = new TemplateColumn();    tc.ItemTemplate = new GenericItem("au_id");    DataGrid1.Columns.Add(tc);    DataGrid1.DataSource = ds;    if (!Page.IsPostBack)    {        DataGrid1.DataBind();    }}最后,编译,运行。
      

  2.   

    上面的代码已经实现运行。但是
    我想在模板列的FootTemplate中设置一个文本框,我试着把 tc.ItemTemplate = new GenericItem("au_id");改为 tc.FooterTemplate = new GenericItem("au_id");提示为 System.NullReferenceException: 未将对象引用设置到对象的实例。问题出在txt.Text=((DataRowView)container.DataItem)[column].ToString();你再帮我看看,好不好?
      

  3.   

    其实我的意思是:由于DataGrid控件没有提供新建纪录的功能,我想做一个模板列,具有编辑、更新、新建等按钮,DataGrid的最下面也就是Footer里,是一个LinkButton(新建)和一些文本框(数据库中相应的字段)
    如何为为DataGrid控件提供新建功能?我做了一个模板列,[编辑、更新]在EditTemplate,[新建]在FooterTemplate,根据表的不同,能够在相对应的列中的FooterTemplate中创建TextBox,以提供新建功能。如何实现?