ViewStateでDataTableを割り当てています。
public void Method1()
{
DataTable dt = getData(); //Gets the Data
ViewState["dtThis"] = dt;
}
' Method2 'が実行されると、 ViewStateがDataTableに割り当てられます。
public void Method2()
{
DataTable dt2 = (DataTable)ViewState["dtThis"];
dt2.Columns.Remove("FirstName"); //Removing a column
dt2.AcceptChanges();
}
Method2の実行後、(DataTable)ViewState( "dtThis")をチェックすると、 dt2をViewState( " dtThis ")に割り当てなくても、DataTabledt2が含まれていることがわかります。(列- "FirstName"がViewSate( "dtThis")DataTableで削除されることを意味します)。
ViewStateのこのタイプの動作がなぜあるのか考えてみてください。
そして、元のViewStateを維持する方法は?