为什么单击Button2_Click按钮后出错,不能添加一新行public partial class _Default : System.Web.UI.Page
{    public DataSet DS=new DataSet();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DS.Tables.Add(CreateDataTable());
            GridView1.DataSource = DS;
            GridView1.DataBind();        }
    }
    private DataTable CreateDataTable()
    {
        DataTable dt = new DataTable();    
        dt.Columns.Add("ID", typeof(int));
        dt.Columns.Add("图像路径", typeof(string));
        dt.Columns.Add("链接网址", typeof(string));
        DataRow dr =dt.NewRow();
        dr["ID"] = "1";
        dr["图像路径"] = "image/11.jpg";
        dr["链接网址"] = "http://baidu.com";
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr["ID"] = "2";
        dr["图像路径"] = "image/221.jpg";
        dr["链接网址"] = "http://sohu.com";
        dt.Rows.Add(dr);
        return dt;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        DataRow dr = DS.Tables[0].NewRow();
        dr["ID"] = this.TextBox1.Text;
        dr["图像路径"] = this.TextBox2.Text;
        dr["链接网址"] = TextBox3.Text;
        DS.Tables[0].Rows.Add(dr);
        GridView1.DataSource = DS;
        GridView1.DataBind();
        
    }
}

解决方案 »

  1.   

    因为你点击BUTTON ,导致页面POSTBACKpublic DataSet DS=new DataSet();
    这行代码被执行
      

  2.   


    public partial class _Default : System.Web.UI.Page
    {    public DataSet DS=ViewState["ds"]==null?new DataSet():(DataSet)ViewState["ds"];
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DS.Tables.Add(CreateDataTable());
                GridView1.DataSource = DS;
                GridView1.DataBind();
                ViewState["ds"]=DS;
            }
        }
        private DataTable CreateDataTable()
        {
            DataTable dt = new DataTable();    
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("图像路径", typeof(string));
            dt.Columns.Add("链接网址", typeof(string));
            DataRow dr =dt.NewRow();
            dr["ID"] = "1";
            dr["图像路径"] = "image/11.jpg";
            dr["链接网址"] = "http://baidu.com";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["ID"] = "2";
            dr["图像路径"] = "image/221.jpg";
            dr["链接网址"] = "http://sohu.com";
            dt.Rows.Add(dr);
            return dt;
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            DataRow dr = DS.Tables[0].NewRow();
            dr["ID"] = this.TextBox1.Text;
            dr["图像路径"] = this.TextBox2.Text;
            dr["链接网址"] = TextBox3.Text;
            DS.Tables[0].Rows.Add(dr);
            GridView1.DataSource = DS;
            GridView1.DataBind();
            ViewState["ds"]=DS;
        }
    }