日期:2014-05-17  浏览次数:20439 次

Gridview增加新行的问题
我在Girdview的FooterTemplete里放置了一个LinkButton作为AddNew按钮,按钮事件为AddNew_Click()
,想在点击这个按钮时Girdview自动增加一行新行,这个新行要在Add按钮所在行之上,该行里面的内容为激活的空白textbox,等待用户输入内容。原表里只有两个字段,一个是id(整型自增1),另一个是name,Girdview我做了四列,第一列是Girdview的序号,第二列是表里的id,第三列是表里的name,第四列放置编辑和修改的LinkButton。用户在点击了FooterTemplete里的AddNew按钮后,Girdview自动增加一行新行,name那里变为文本框(txtRoleName)等待用户输入。
现在程序运行时出错了,在红色断点的那句报错,提示:未将对象引用设置到对象的实例
请教下各位,谁有相同的案例程序,发给我参考一下,谢谢。

protected void AddNew_Click(object sender,EventArgs e)
{
       DataTable dt=this.GetDataFromGrid();
       DataRow newRow=dt.NewRow();
       dt.Rows.Add(newRow);
       this.gvRoleInfo.DataSource=dt;
       this.gvRoleInfo.DataBind();
}

protected DataTable GetDataFromGrid()
{
        DataTable dt1=new DataTable("tb01");
        dt1.columns.Add("id");
        dt1.columns.Add("name");
        for(int i=0;i<gvRoleInfo.Rows.Count;i++)
        {
             GridViewRow gRow=gvRoleInfo.Rows[i];
             DataRow newRow=dt1.NewRow();
             newRow[0]=gvRoleInfo.DataKeys[i].Value;
             newRow[1]=((TextBox)gRow.FindControl("txtRoleName")).Text;             dt1.Rows.Add(newRow);
        }
        dt1.AcceptChanges();
        return dt1;
}

------解决方案--------------------
参考这个:
http://www.cnblogs.com/insus/p/3249508.html
http://www.cnblogs.com/insus/p/3247935.html
------解决方案--------------------
未将对象引用设置到对象的实例