public DataSet MyDataset{

get

{

//------------------------------------------------------------------------------

// get dataset from viewstate

//------------------------------------------------------------------------------

DataSet localDataset = null;

object o = ViewState["viewStateDataset"];

if (o == null)

{

//------------------------------------------------------------------------------

// ViewState is null, dataset get from Db

//------------------------------------------------------------------------------

localDataset = GetFromDatabaseMethod();

}

else

{

//------------------------------------------------------------------------------

// ViewState is not null, read dataset from ViewState

//------------------------------------------------------------------------------

System.IO.StringReader sr = new System.IO.StringReader

( ( string ) ( ViewState [ "viewStateDataset" ] ) );

localDataSet= new DataSet();

localDataSet.ReadXml ( sr );

}

return localDataSet;

}

set

{

//------------------------------------------------------------------------------

// save user changes in viewstate, until they click the Save Button

//------------------------------------------------------------------------------

System.IO.StringWriter sw = new System.IO.StringWriter ( );

value.WriteXml ( sw );

ViewState [ "_dsDerivedElementParents" ] = sw.ToString ( );

}

}