2012-12-04 88 views
0

考虑下面的代码:Session变量内容未更新

\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中没有值。

+1

“dt”在这段时间后被清除了吗? –

回答

0

根据你的代码它可能会发生。 B'cos 当我< = 0相同的价值将存在早。 B'cos您的会话在外环。检查。

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

检查Session["dfdtemptable"];指定的地方(起源 - 不表明我们 - b'cos是可以为我生成0)。

0

我不认为你需要循环,如果你所需要的是删除所有行。试试这个

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

Session["dfdtemptable"] = dt;