Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / DataSourceView.cs / 1 / DataSourceView.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public abstract class DataSourceView {
private static readonly object EventDataSourceViewChanged = new object();
private EventHandlerList _events;
private string _name;
protected DataSourceView(IDataSource owner, string viewName) {
if (owner == null) {
throw new ArgumentNullException("owner");
}
if (viewName == null) {
throw new ArgumentNullException("viewName");
}
_name = viewName;
DataSourceControl dataSourceControl = owner as DataSourceControl;
if (dataSourceControl != null) {
dataSourceControl.DataSourceChangedInternal += new EventHandler(OnDataSourceChangedInternal);
}
else {
owner.DataSourceChanged += new EventHandler(OnDataSourceChangedInternal);
}
}
// CanX properties indicate whether the data source allows each
// operation, and if so, whether it's appropriate to do so.
// For instance, a control may allow Deletion, but if a required Delete
// command isn't set, CanDelete should be false, because a Delete
// operation would fail.
public virtual bool CanDelete {
get {
return false;
}
}
public virtual bool CanInsert {
get {
return false;
}
}
public virtual bool CanPage {
get {
return false;
}
}
public virtual bool CanRetrieveTotalRowCount {
get {
return false;
}
}
public virtual bool CanSort {
get {
return false;
}
}
public virtual bool CanUpdate {
get {
return false;
}
}
///
/// Indicates the list of event handler delegates for the view. This property is read-only.
///
protected EventHandlerList Events {
get {
if (_events == null) {
_events = new EventHandlerList();
}
return _events;
}
}
public string Name {
get {
return _name;
}
}
public event EventHandler DataSourceViewChanged {
add {
Events.AddHandler(EventDataSourceViewChanged, value);
}
remove {
Events.RemoveHandler(EventDataSourceViewChanged, value);
}
}
public virtual void Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteDelete(keys, oldValues);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
///
/// Performs a delete operation on the specified list. This is only
/// supported by a DataSourceControl when CanDelete returns true.
///
///
/// The set of name/value pairs used to filter
/// the items in the list that should be deleted.
///
///
/// The complete set of name/value pairs used to filter
/// the items in the list that should be deleted.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteDelete(IDictionary keys, IDictionary oldValues) {
throw new NotSupportedException();
}
///
/// Performs an insert operation on the specified list. This is only
/// supported by a DataControl when CanInsert is true.
///
///
/// The set of name/value pairs to be used to initialize
/// a new item in the list.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteInsert(IDictionary values) {
throw new NotSupportedException();
}
///
///
protected internal abstract IEnumerable ExecuteSelect(DataSourceSelectArguments arguments);
///
/// Performs an update operation on the specified list. This is only
/// supported by a DataControl when CanUpdate is true.
///
///
/// The set of name/value pairs used to filter
/// the items in the list that should be updated.
///
///
/// The set of name/value pairs to be used to update the
/// items in the list.
///
///
/// The set of name/value pairs to be used to identify the
/// item to be updated.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) {
throw new NotSupportedException();
}
private void OnDataSourceChangedInternal(object sender, EventArgs e) {
OnDataSourceViewChanged(e);
}
protected virtual void OnDataSourceViewChanged(EventArgs e) {
EventHandler handler = Events[EventDataSourceViewChanged] as EventHandler;
if (handler != null) {
handler(this, e);
}
}
public virtual void Insert(IDictionary values, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteInsert(values);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
protected internal virtual void RaiseUnsupportedCapabilityError(DataSourceCapabilities capability) {
if (!CanPage && ((capability & DataSourceCapabilities.Page) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoPaging));
}
if (!CanSort && ((capability & DataSourceCapabilities.Sort) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoSorting));
}
if (!CanRetrieveTotalRowCount && ((capability & DataSourceCapabilities.RetrieveTotalRowCount) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoRowCount));
}
}
public virtual void Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
callback(ExecuteSelect(arguments));
}
public virtual void Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteUpdate(keys, values, oldValues);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.Collections;
using System.ComponentModel;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public abstract class DataSourceView {
private static readonly object EventDataSourceViewChanged = new object();
private EventHandlerList _events;
private string _name;
protected DataSourceView(IDataSource owner, string viewName) {
if (owner == null) {
throw new ArgumentNullException("owner");
}
if (viewName == null) {
throw new ArgumentNullException("viewName");
}
_name = viewName;
DataSourceControl dataSourceControl = owner as DataSourceControl;
if (dataSourceControl != null) {
dataSourceControl.DataSourceChangedInternal += new EventHandler(OnDataSourceChangedInternal);
}
else {
owner.DataSourceChanged += new EventHandler(OnDataSourceChangedInternal);
}
}
// CanX properties indicate whether the data source allows each
// operation, and if so, whether it's appropriate to do so.
// For instance, a control may allow Deletion, but if a required Delete
// command isn't set, CanDelete should be false, because a Delete
// operation would fail.
public virtual bool CanDelete {
get {
return false;
}
}
public virtual bool CanInsert {
get {
return false;
}
}
public virtual bool CanPage {
get {
return false;
}
}
public virtual bool CanRetrieveTotalRowCount {
get {
return false;
}
}
public virtual bool CanSort {
get {
return false;
}
}
public virtual bool CanUpdate {
get {
return false;
}
}
///
/// Indicates the list of event handler delegates for the view. This property is read-only.
///
protected EventHandlerList Events {
get {
if (_events == null) {
_events = new EventHandlerList();
}
return _events;
}
}
public string Name {
get {
return _name;
}
}
public event EventHandler DataSourceViewChanged {
add {
Events.AddHandler(EventDataSourceViewChanged, value);
}
remove {
Events.RemoveHandler(EventDataSourceViewChanged, value);
}
}
public virtual void Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteDelete(keys, oldValues);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
///
/// Performs a delete operation on the specified list. This is only
/// supported by a DataSourceControl when CanDelete returns true.
///
///
/// The set of name/value pairs used to filter
/// the items in the list that should be deleted.
///
///
/// The complete set of name/value pairs used to filter
/// the items in the list that should be deleted.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteDelete(IDictionary keys, IDictionary oldValues) {
throw new NotSupportedException();
}
///
/// Performs an insert operation on the specified list. This is only
/// supported by a DataControl when CanInsert is true.
///
///
/// The set of name/value pairs to be used to initialize
/// a new item in the list.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteInsert(IDictionary values) {
throw new NotSupportedException();
}
///
///
protected internal abstract IEnumerable ExecuteSelect(DataSourceSelectArguments arguments);
///
/// Performs an update operation on the specified list. This is only
/// supported by a DataControl when CanUpdate is true.
///
///
/// The set of name/value pairs used to filter
/// the items in the list that should be updated.
///
///
/// The set of name/value pairs to be used to update the
/// items in the list.
///
///
/// The set of name/value pairs to be used to identify the
/// item to be updated.
///
///
/// The number of items that were affected by the operation.
///
protected virtual int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) {
throw new NotSupportedException();
}
private void OnDataSourceChangedInternal(object sender, EventArgs e) {
OnDataSourceViewChanged(e);
}
protected virtual void OnDataSourceViewChanged(EventArgs e) {
EventHandler handler = Events[EventDataSourceViewChanged] as EventHandler;
if (handler != null) {
handler(this, e);
}
}
public virtual void Insert(IDictionary values, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteInsert(values);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
protected internal virtual void RaiseUnsupportedCapabilityError(DataSourceCapabilities capability) {
if (!CanPage && ((capability & DataSourceCapabilities.Page) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoPaging));
}
if (!CanSort && ((capability & DataSourceCapabilities.Sort) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoSorting));
}
if (!CanRetrieveTotalRowCount && ((capability & DataSourceCapabilities.RetrieveTotalRowCount) != 0)) {
throw new NotSupportedException(SR.GetString(SR.DataSourceView_NoRowCount));
}
}
public virtual void Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
callback(ExecuteSelect(arguments));
}
public virtual void Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) {
if (callback == null) {
throw new ArgumentNullException("callback");
}
int affectedRecords = 0;
bool performedCallback = false;
try {
affectedRecords = ExecuteUpdate(keys, values, oldValues);
}
catch (Exception ex) {
performedCallback = true;
if (!callback(affectedRecords, ex)) {
throw;
}
}
finally {
if (!performedCallback) {
callback(affectedRecords, null);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FixedPage.cs
- EntityDescriptor.cs
- Application.cs
- ADConnectionHelper.cs
- AllMembershipCondition.cs
- XMLSyntaxException.cs
- PartialCachingAttribute.cs
- UnsafeNativeMethods.cs
- ActivityPropertyReference.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- TraceProvider.cs
- FileDialog.cs
- ObfuscateAssemblyAttribute.cs
- CodeDomLoader.cs
- storagemappingitemcollection.viewdictionary.cs
- RuntimeEnvironment.cs
- URLString.cs
- Variable.cs
- DbConnectionFactory.cs
- TdsRecordBufferSetter.cs
- PropertyContainer.cs
- XPathDocument.cs
- AffineTransform3D.cs
- WebPartEventArgs.cs
- IQueryable.cs
- Input.cs
- FormattedText.cs
- MimeFormatter.cs
- HtmlButton.cs
- XmlChoiceIdentifierAttribute.cs
- LogicalExpr.cs
- CodeTypeReferenceCollection.cs
- HttpCapabilitiesEvaluator.cs
- CompiledRegexRunnerFactory.cs
- EndpointAddressElementBase.cs
- BuildResultCache.cs
- MetadataItemCollectionFactory.cs
- TreeBuilder.cs
- GraphicsPath.cs
- _LazyAsyncResult.cs
- Pair.cs
- NodeInfo.cs
- PassportAuthenticationModule.cs
- ProxyFragment.cs
- ResourceContainer.cs
- ColorTransformHelper.cs
- PathNode.cs
- ListDictionaryInternal.cs
- ValidationHelper.cs
- NameTable.cs
- WrappedIUnknown.cs
- Privilege.cs
- DesignerVerbCollection.cs
- SqlCacheDependencySection.cs
- SelectionChangedEventArgs.cs
- While.cs
- ToolStripArrowRenderEventArgs.cs
- WinEventHandler.cs
- ContractAdapter.cs
- CommentEmitter.cs
- SqlParameterCollection.cs
- RegularExpressionValidator.cs
- Utils.cs
- AuthenticationService.cs
- DetailsViewInsertedEventArgs.cs
- ProjectionPruner.cs
- RemoteWebConfigurationHostStream.cs
- DataGridViewLayoutData.cs
- Utility.cs
- Model3DCollection.cs
- MetadataArtifactLoaderCompositeResource.cs
- DirectoryNotFoundException.cs
- NativeMethods.cs
- Brush.cs
- CatalogPartChrome.cs
- SkinBuilder.cs
- TheQuery.cs
- XmlMapping.cs
- FormatSettings.cs
- NumericUpDownAccelerationCollection.cs
- IApplicationTrustManager.cs
- HostingEnvironmentSection.cs
- TextAnchor.cs
- MultiPageTextView.cs
- MethodMessage.cs
- BaseComponentEditor.cs
- WebPartDisplayModeCollection.cs
- ClientConfigPaths.cs
- TypedAsyncResult.cs
- DataGridViewCellValueEventArgs.cs
- PKCS1MaskGenerationMethod.cs
- DBSqlParserTableCollection.cs
- ProtectedUri.cs
- MessageSmuggler.cs
- InvariantComparer.cs
- DesignerAttribute.cs
- PermissionSetTriple.cs
- FileCodeGroup.cs
- NotificationContext.cs
- AnnotationDocumentPaginator.cs