private static IDataStorageService GetDataStorageService(IBindingContainer bindingContainer) { IDataStorageService dataStorageService = null; IBindingServicesProvider serviceProvider = bindingContainer as IBindingServicesProvider; if (serviceProvider != null) { dataStorageService = serviceProvider.DataStorageService; } else { dataStorageService = new ViewStateStorageService(bindingContainer.GetStateBag()); } return(dataStorageService); }
/// <summary> /// Create a binder and explicitly specify the StateMode /// </summary> /// <param name="bindingContainer"></param> /// <param name="stateMode"></param> /// <returns></returns> public static BinderBase CreateBinder(IBindingContainer bindingContainer, StateMode stateMode) { BinderBase binder = null; IDataStorageService dataStorageService = GetDataStorageService(bindingContainer); if (stateMode == StateMode.Recreate) { binder = new StatelessBinder(bindingContainer, dataStorageService, new WebformsControlService()); } else { binder = new ViewStateBinder(bindingContainer, new ViewStateStorageService(bindingContainer.GetStateBag()), new WebformsControlService()); } return(binder); }