你的执行顺序不对
当你点击按钮后,程序先执行Page_Load,然后才执行 Button4_Click
所以新的数据没有绑定到DataGrid上,再次刷新时才绑定。
你需要在 Button4_Click 里重新绑定DataGrid

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
        if(!IsPostBack)
        {
          DataTable tb;
          tb=new DataTable();
          tb.Columns.Add("name",typeof(string));
          tb.Columns.Add("sex",typeof(string));
          tb.Columns.Add("address",typeof(string));
          ViewState["table"]=tb;
        }
        ReBindGrid();
    }
    private void ReBindGrid()
    {
        if(ViewState["table"] != null)
        {
          this.DataGrid1.DataSource=(DataTable)ViewState["table"];
          this.DataBind();
        }
    }
    private void Button4_Click(object sender, System.EventArgs e)
    {
          DataTable tb=(DataTable)ViewState["table"];
          System.Data.DataRow row;
          row=tb.NewRow();
          row["name"]=TextBox2.Text;
          row["sex"]=TextBox3.Text;
          row["address"]=TextBox4.Text;
          tb.Rows.Add(row);
          ViewState["table"]=tb;      ReBindGrid();
    }
      

  2.   

    先执行pageload事件,在执行按钮事件,就如此!