Button3_Click事件是回发的,点击一个按钮会触发页面回发,每次发送请求的时候页面会初始化,都会执行Page_Load{},使得DataTable dt = new DataTable("AddGoods");,这样datatale里面每次都只有一行
protected void Page_Load(object sender, EventArgs e)
{
//在该事件里应该绑定,并且要在if(!Is.PostBack){里面写代码}
if(!Is.PostBack)
{
DataColumn dc = null;
dc = dt.Columns.Add("ID", Type.GetType("System.Int32"));
…………
dc = dt.Columns.Add("Count", Type.GetType("System.Int32"));
ViewState["dt"] = dt; //注意这行,因为下面Button3_Click事件会触发页面回发,所以在这里应该吧DataTable保存一次
}
}
protected void Button3_Click(object sender, EventArgs e)
{
DataTable dt = ViewState["dt"] as DataTable; //注意这行
DataRow newRow;
newRow = dt.NewRow();
………………
}
每次发送请求的时候页面会初始化也就是说每次都会执行 DataTable dt = new DataTable("AddGoods");
我的建议是把dt变成个单例
DataTable static dt = new DataTable("AddGoods");
我感觉貌似不能实现