string delid = objBtn.Attributes["delid"];
string Strprid = objBtn.Attributes["prid"];
DataTable dt = (DataTable)ViewState["VS_OPINION_REPLY"];
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("pr_delid='{0}'", delid);
if (dv.Count == 1)
{
dv[0].Row.Delete(); =>刪除一筆
dv.RowFilter = "";
dt.AcceptChanges();=>讓DataTable 馬上接受剛才dv的刪除動作
GridView1.DataSource = dv;
GridView1.DataBind();
ViewState["VS_OPINION_REPLY"] = dt;
if (Strprid.Length > 0)
{
ViewState["PridForDel"] += Strprid + ";";
}
}
"N O T I C "
這裡是因為先將DataTable的值給DataView
然後 在DataView中做刪除其中一筆的動作
但是DataTable並未將此筆做刪除
只是會標記此筆為已刪除
可以利用DataTable.AcceptChanges來讓DataTable馬上接受剛才做的刪除動作
也可以利用DataTable.RejectChanges來讓DataTable馬上復原剛才做的刪除動作
目前做測試可以復原及馬上接受22次的刪除動作
沒有留言:
張貼留言