2012-12-04 118 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;