首先定義一個全局變量dataTable
public DataTable dt
{
get { return (DataTable)ViewState["dt"]; }
set { ViewState["dt"] = value; }
}
在首次加載頁面的時候創建表的列
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt1 = new DataTable();
dt1.Columns.Add("Choose", typeof(string));
dt1.Columns.Add("IsRight", typeof(string));
dt1.Columns.Add("ID", typeof(string));
dt = dt1;
DataColumn[] dc = new DataColumn[1];
dc[0] = dt.Columns["ID"];
dt.PrimaryKey = dc;
}
}
點擊button時添加記錄
此時只是放在GridView1中,沒有保存在數據庫中
protected void btnAdd_Click(object sender, EventArgs e)
{
DataRow dr = dt.NewRow();
dr["Choose"] = txtChooseItem.Text;
dr["IsRight"] = cbRightItem.Checked ? true : false;
dr["ID"] = Guid.NewGuid().ToString();
dt.Rows.Add(dr);
dt.AcceptChanges();//這一句很重要,否則每次新增的紀錄會覆蓋久的紀錄
//被這個問題困擾了2天 汗啊
if (dt.Rows.Count != 0)
{
GridView1.DataSource = dt;
ViewState["DataSource"] = dt;
GridView1.DataBind();
}
}