object SavePageControlState ()
{
int count = requireStateControls == null ? 0 : requireStateControls.Count;
if (count == 0)
return null;
object state;
object[] controlStates = new object [count];
object[] adapterState = new object [count];
Control control;
ControlAdapter adapter;
bool allNull = true;
TraceContext trace = (Context != null && Context.Trace.IsEnabled) ? Context.Trace : null;
for (int n = 0; n < count; n++) {
control = requireStateControls [n];
state = controlStates [n] = control.SaveControlState ();
if (state != null)
allNull = false;
if (trace != null)
trace.SaveControlState (control, state);
adapter = control.Adapter;
if (adapter != null) {
adapterState [n] = adapter.SaveAdapterControlState ();
if (adapterState [n] != null) allNull = false;
}
}
if (allNull)
return null;
else
return new Pair (controlStates, adapterState);
}