大家好我分配一個Datatable視圖狀態在某些操作像每個按鈕我將分配一行並將綁定到數據表並將該數據表分配給視圖狀態。我有一個gridview綁定了我創建的數據表。在此我有上刪除行刪除選項我清除了視圖狀態,並與新的datattable無法清除視圖狀態
DataTable dtPayment = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void btn_Click(object sender, EventArgs e)
{
if (ViewState["CurrentTable"] == null)
{
dtPayment.Columns.Add("Id", typeof(string));
dtPayment.Columns.Add("PaymentMode", typeof(string));
dtPayment.Columns.Add("TransactionAmount", typeof(string));
dtPayment.Columns.Add("BankCharges", typeof(string));
dtPayment.Columns.Add("Particulars", typeof(string));
DataRow dr = dtPayment.NewRow();
dr["Id"] = 1;
dr["PaymentMode"] = "Cheque";
dr["TransactionAmount"] = txtAmount.Text;
dr["BankCharges"] = "";
dr["Particulars"] = "";
dtPayment.Rows.Add(dr);
ViewState["CurrentTable"] = dtPayment;
grd.DataSource = dtPayment;
grd.DataBind();
}
else
{
AddNewRowToGrid("Cheque", txtAmount.Text);
}
}
protected void grd_Deleting(object sender, DeletingEventArgs e)
{
dt = (DataTable)ViewState["CurrentTable"];
int iIndex;
iIndex = grd.FocusedRowIndex;
dt.Rows[iIndex].Delete();
dt.AcceptChanges();
ViewState.Remove("CurrentTable");
ViewState["CurrentTable"] = dt;
grd.DataSource = dt;
grd.DataBind();
}
protected void AddNewRowToGrid(string strPaymntMode, string transAmount)
{
int rowIndex = 0;
//SetPreviousData();
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["Id"] = i + 1;
drCurrentRow["PaymentMode"] = strPaymntMode;
drCurrentRow["TransactionAmount"] = transAmount;
drCurrentRow["BankCharges"] = "";
drCurrentRow["Particulars"] = "";
rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
grd.DataSource = dtCurrentTable;
grd.DataBind();
}
}
}
分配給它可是一個後觀看時它刪除數據表遺骸一樣每以前的值可以告訴我出錯的地方
是的,我做的第一個記錄它工作正常,但在刪除第二個記錄之前的值被保留在ViewState – Learner
見我的回答http://stackoverflow.com/ a/15740413/2218635 –
檢查您是否未綁定page_load上的數據表,並且已經結束了您在grd_Deleting事件中所做的更改。 – Adil