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
- ThemeDictionaryExtension.cs
- WindowVisualStateTracker.cs
- ProcessThread.cs
- CompilerInfo.cs
- XamlLoadErrorInfo.cs
- HttpCookiesSection.cs
- TextSelectionProcessor.cs
- SystemUdpStatistics.cs
- BitmapImage.cs
- IndexerNameAttribute.cs
- DateTimeConstantAttribute.cs
- SmiRecordBuffer.cs
- TrackBar.cs
- InplaceBitmapMetadataWriter.cs
- SynchronizingStream.cs
- AdjustableArrowCap.cs
- ScrollEvent.cs
- TransformerTypeCollection.cs
- PageAsyncTaskManager.cs
- ScopeElementCollection.cs
- WizardPanel.cs
- SecurityPermission.cs
- ScriptModule.cs
- URI.cs
- Emitter.cs
- XmlComment.cs
- ProvidePropertyAttribute.cs
- UseLicense.cs
- NamespaceList.cs
- UidManager.cs
- TextInfo.cs
- Scanner.cs
- MemoryMappedFile.cs
- UrlMapping.cs
- Decimal.cs
- FixedFindEngine.cs
- XPathNodeHelper.cs
- CommandPlan.cs
- HostedElements.cs
- SystemTcpStatistics.cs
- DesignerHost.cs
- DeclarativeExpressionConditionDeclaration.cs
- ComponentDispatcherThread.cs
- XhtmlBasicTextViewAdapter.cs
- XmlSerializableWriter.cs
- _FtpDataStream.cs
- TextCompositionManager.cs
- BulletedListEventArgs.cs
- DeclarationUpdate.cs
- ParserHooks.cs
- XMLUtil.cs
- StateManagedCollection.cs
- BaseDataBoundControlDesigner.cs
- CommandField.cs
- XamlSerializationHelper.cs
- CombinedGeometry.cs
- HttpRuntime.cs
- PaintValueEventArgs.cs
- GroupItemAutomationPeer.cs
- MultiBindingExpression.cs
- Size.cs
- Page.cs
- HeaderedContentControl.cs
- AssociationTypeEmitter.cs
- MetadataArtifactLoader.cs
- ConstraintConverter.cs
- Evaluator.cs
- StylusPoint.cs
- FileIOPermission.cs
- StringDictionaryWithComparer.cs
- WindowsFont.cs
- DataGridState.cs
- EnumBuilder.cs
- PasswordRecovery.cs
- KeyEvent.cs
- FileStream.cs
- SpeechEvent.cs
- CultureSpecificStringDictionary.cs
- EventSetter.cs
- SystemTcpConnection.cs
- LicFileLicenseProvider.cs
- MembershipPasswordException.cs
- BitConverter.cs
- DependencyObjectCodeDomSerializer.cs
- TraceUtility.cs
- CreateSequence.cs
- TransformerInfoCollection.cs
- OLEDB_Util.cs
- DocumentPageView.cs
- RunInstallerAttribute.cs
- BufferModeSettings.cs
- PropertyChangedEventArgs.cs
- LinqDataSourceStatusEventArgs.cs
- TripleDESCryptoServiceProvider.cs
- EnumMemberAttribute.cs
- HttpListener.cs
- SecurityTokenRequirement.cs
- IisTraceListener.cs
- CommandDevice.cs
- XNodeValidator.cs