0

考虑下面的代码:

\DataTable dt =(DataTable) Session["dfdtemptable"];
    // Remove all
            int i = dt.Rows.Count;
        while(i> 0)
        {
        dt.Rows[i-1].Delete();
        dt.Rows[i - 1].AcceptChanges();
        i--;
        }
        Session["dfdtemptable"] = dt;
        this.BindItems();

单击 addnew 按钮时,将执行上述代码。但是 Session 变量仍然包含旧值该变量没有被清除..但是需要清除 session 变量,以便在 Session 中没有值。

4

2 回答 2

0

如果您只需要删除所有行,我认为您不需要循环。尝试这个

DataTable dt =(DataTable) Session["dfdtemptable"];
dt.Clear();

Session["dfdtemptable"] = dt;
于 2012-12-04T19:51:25.273 回答
0

根据您的代码,它可能会发生。B'cos当 i < = 0 时将存在与之前相同的值。B'cos 你的Session 在外循环中。检查一下。

 while(i> 0)
    {
    dt.Rows[i-1].Delete();
    dt.Rows[i - 1].AcceptChanges();
    i--;
    }
    Session["dfdtemptable"] = dt;

检查您Session["dfdtemptable"];分配的位置(原点 - 未为我们显示-可以为 i 生成 0 的b'cos )。

于 2012-12-04T19:23:52.533 回答