大家好我分配一个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