Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / DataSourceSelectArguments.cs / 1 / DataSourceSelectArguments.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.Diagnostics;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataSourceSelectArguments {
private DataSourceCapabilities _requestedCapabilities;
private DataSourceCapabilities _supportedCapabilities;
private int _maximumRows;
private bool _retrieveTotalRowCount;
private string _sortExpression;
private int _startRowIndex;
private int _totalRowCount = -1;
public DataSourceSelectArguments() : this(String.Empty, 0, 0) {
}
public DataSourceSelectArguments(string sortExpression) : this(sortExpression, 0, 0) {
}
public DataSourceSelectArguments(int startRowIndex, int maximumRows) : this(String.Empty, startRowIndex, maximumRows) {
}
public DataSourceSelectArguments(string sortExpression, int startRowIndex, int maximumRows) {
SortExpression = sortExpression;
StartRowIndex = startRowIndex;
MaximumRows = maximumRows;
}
// Empty cannot be a static readonly field because we want each requester to get their own copy.
// This is because DataSourceViews need to call AddSupportedCapabilities on the DataSourceSelectArguments,
// changing it to be suited to the DataSourceView's needs. If another DataSourceView used the same instance,
// the supported capabilities would be wrong. This member stays as a property for programming ease and
// returns a new instance each time. If the user wants to change this instance, they're free to.
public static DataSourceSelectArguments Empty {
get {
return new DataSourceSelectArguments();
}
}
///
/// The maximum number of rows requested for a paged data request.
/// Use 0 to indicate all rows.
///
public int MaximumRows {
get {
return _maximumRows;
}
set {
if (value == 0) {
if (_startRowIndex == 0) {
_requestedCapabilities &= ~DataSourceCapabilities.Page;
}
}
else {
_requestedCapabilities |= DataSourceCapabilities.Page;
}
_maximumRows = value;
}
}
///
/// Indicates whether the total row count is requested
///
public bool RetrieveTotalRowCount {
get {
return _retrieveTotalRowCount;
}
set {
if (value) {
_requestedCapabilities |= DataSourceCapabilities.RetrieveTotalRowCount;
}
else {
_requestedCapabilities &= ~DataSourceCapabilities.RetrieveTotalRowCount;
}
_retrieveTotalRowCount = value;
}
}
///
/// The expression used to sort the data.
///
public string SortExpression {
get {
if (_sortExpression == null)
_sortExpression = String.Empty;
return _sortExpression;
}
set {
if (String.IsNullOrEmpty(value)) {
_requestedCapabilities &= ~DataSourceCapabilities.Sort;
}
else {
_requestedCapabilities |= DataSourceCapabilities.Sort;
}
_sortExpression = value;
}
}
///
/// The index of the first row requested for a paged data request
///
public int StartRowIndex {
get {
return _startRowIndex;
}
set {
if (value == 0) {
if (_maximumRows == 0) {
_requestedCapabilities &= ~DataSourceCapabilities.Page;
}
}
else {
_requestedCapabilities |= DataSourceCapabilities.Page;
}
_startRowIndex = value;
}
}
///
/// The number of rows returned by the query that counts the number of rows. Typically
/// set by the DataSource.
///
public int TotalRowCount {
get {
return _totalRowCount;
}
set {
_totalRowCount = value;
}
}
///
/// DataSource controls would call this for each capability that it handled.
/// It would do the bitwise operations to handle determining what capabilities were left
/// over at the end for RaiseUnsupportedCapabilitiesError to handle.
///
public void AddSupportedCapabilities(DataSourceCapabilities capabilities) {
_supportedCapabilities |= capabilities;
}
///
/// Prevents a compiler error because Equals was overridden
///
public override int GetHashCode() {
return System.Web.Util.HashCodeCombiner.CombineHashCodes(_maximumRows.GetHashCode(),
_retrieveTotalRowCount.GetHashCode(),
_sortExpression.GetHashCode(),
_startRowIndex.GetHashCode(),
_totalRowCount.GetHashCode());
}
public override bool Equals(object obj) {
DataSourceSelectArguments arguments = obj as DataSourceSelectArguments;
if (arguments != null) {
return ((arguments.MaximumRows == _maximumRows) &&
(arguments.RetrieveTotalRowCount == _retrieveTotalRowCount) &&
(arguments.SortExpression == _sortExpression) &&
(arguments.StartRowIndex == _startRowIndex) &&
(arguments.TotalRowCount == _totalRowCount));
}
return false;
}
///
/// Select implementations would call this method to raise errors on unsupported capabilities.
///
public void RaiseUnsupportedCapabilitiesError(DataSourceView view) {
DataSourceCapabilities unsupportedCapabilities;
unsupportedCapabilities = _requestedCapabilities & ~_supportedCapabilities;
if ((unsupportedCapabilities & DataSourceCapabilities.Sort) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Sort);
}
if ((unsupportedCapabilities & DataSourceCapabilities.Page) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Page);
}
if ((unsupportedCapabilities & DataSourceCapabilities.RetrieveTotalRowCount) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.RetrieveTotalRowCount);
}
Debug.Assert(unsupportedCapabilities == 0, "unknown capability not supported");
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System.Diagnostics;
using System.Security.Permissions;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataSourceSelectArguments {
private DataSourceCapabilities _requestedCapabilities;
private DataSourceCapabilities _supportedCapabilities;
private int _maximumRows;
private bool _retrieveTotalRowCount;
private string _sortExpression;
private int _startRowIndex;
private int _totalRowCount = -1;
public DataSourceSelectArguments() : this(String.Empty, 0, 0) {
}
public DataSourceSelectArguments(string sortExpression) : this(sortExpression, 0, 0) {
}
public DataSourceSelectArguments(int startRowIndex, int maximumRows) : this(String.Empty, startRowIndex, maximumRows) {
}
public DataSourceSelectArguments(string sortExpression, int startRowIndex, int maximumRows) {
SortExpression = sortExpression;
StartRowIndex = startRowIndex;
MaximumRows = maximumRows;
}
// Empty cannot be a static readonly field because we want each requester to get their own copy.
// This is because DataSourceViews need to call AddSupportedCapabilities on the DataSourceSelectArguments,
// changing it to be suited to the DataSourceView's needs. If another DataSourceView used the same instance,
// the supported capabilities would be wrong. This member stays as a property for programming ease and
// returns a new instance each time. If the user wants to change this instance, they're free to.
public static DataSourceSelectArguments Empty {
get {
return new DataSourceSelectArguments();
}
}
///
/// The maximum number of rows requested for a paged data request.
/// Use 0 to indicate all rows.
///
public int MaximumRows {
get {
return _maximumRows;
}
set {
if (value == 0) {
if (_startRowIndex == 0) {
_requestedCapabilities &= ~DataSourceCapabilities.Page;
}
}
else {
_requestedCapabilities |= DataSourceCapabilities.Page;
}
_maximumRows = value;
}
}
///
/// Indicates whether the total row count is requested
///
public bool RetrieveTotalRowCount {
get {
return _retrieveTotalRowCount;
}
set {
if (value) {
_requestedCapabilities |= DataSourceCapabilities.RetrieveTotalRowCount;
}
else {
_requestedCapabilities &= ~DataSourceCapabilities.RetrieveTotalRowCount;
}
_retrieveTotalRowCount = value;
}
}
///
/// The expression used to sort the data.
///
public string SortExpression {
get {
if (_sortExpression == null)
_sortExpression = String.Empty;
return _sortExpression;
}
set {
if (String.IsNullOrEmpty(value)) {
_requestedCapabilities &= ~DataSourceCapabilities.Sort;
}
else {
_requestedCapabilities |= DataSourceCapabilities.Sort;
}
_sortExpression = value;
}
}
///
/// The index of the first row requested for a paged data request
///
public int StartRowIndex {
get {
return _startRowIndex;
}
set {
if (value == 0) {
if (_maximumRows == 0) {
_requestedCapabilities &= ~DataSourceCapabilities.Page;
}
}
else {
_requestedCapabilities |= DataSourceCapabilities.Page;
}
_startRowIndex = value;
}
}
///
/// The number of rows returned by the query that counts the number of rows. Typically
/// set by the DataSource.
///
public int TotalRowCount {
get {
return _totalRowCount;
}
set {
_totalRowCount = value;
}
}
///
/// DataSource controls would call this for each capability that it handled.
/// It would do the bitwise operations to handle determining what capabilities were left
/// over at the end for RaiseUnsupportedCapabilitiesError to handle.
///
public void AddSupportedCapabilities(DataSourceCapabilities capabilities) {
_supportedCapabilities |= capabilities;
}
///
/// Prevents a compiler error because Equals was overridden
///
public override int GetHashCode() {
return System.Web.Util.HashCodeCombiner.CombineHashCodes(_maximumRows.GetHashCode(),
_retrieveTotalRowCount.GetHashCode(),
_sortExpression.GetHashCode(),
_startRowIndex.GetHashCode(),
_totalRowCount.GetHashCode());
}
public override bool Equals(object obj) {
DataSourceSelectArguments arguments = obj as DataSourceSelectArguments;
if (arguments != null) {
return ((arguments.MaximumRows == _maximumRows) &&
(arguments.RetrieveTotalRowCount == _retrieveTotalRowCount) &&
(arguments.SortExpression == _sortExpression) &&
(arguments.StartRowIndex == _startRowIndex) &&
(arguments.TotalRowCount == _totalRowCount));
}
return false;
}
///
/// Select implementations would call this method to raise errors on unsupported capabilities.
///
public void RaiseUnsupportedCapabilitiesError(DataSourceView view) {
DataSourceCapabilities unsupportedCapabilities;
unsupportedCapabilities = _requestedCapabilities & ~_supportedCapabilities;
if ((unsupportedCapabilities & DataSourceCapabilities.Sort) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Sort);
}
if ((unsupportedCapabilities & DataSourceCapabilities.Page) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.Page);
}
if ((unsupportedCapabilities & DataSourceCapabilities.RetrieveTotalRowCount) != 0) {
view.RaiseUnsupportedCapabilityError(DataSourceCapabilities.RetrieveTotalRowCount);
}
Debug.Assert(unsupportedCapabilities == 0, "unknown capability not supported");
}
}
}
// 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
- ListBoxAutomationPeer.cs
- CompilerGeneratedAttribute.cs
- BasicBrowserDialog.designer.cs
- StructuredType.cs
- DataSvcMapFileSerializer.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- GraphicsPath.cs
- Encoding.cs
- WebPartZoneBase.cs
- FormsAuthenticationConfiguration.cs
- SqlXml.cs
- PersonalizablePropertyEntry.cs
- IgnoreDataMemberAttribute.cs
- PathSegment.cs
- SQLMembershipProvider.cs
- TextTreeInsertUndoUnit.cs
- UpdateTracker.cs
- SafeMILHandle.cs
- XsltLoader.cs
- ForceCopyBuildProvider.cs
- IndentTextWriter.cs
- Slider.cs
- StructuredType.cs
- ApplicationContext.cs
- InternalControlCollection.cs
- ObfuscateAssemblyAttribute.cs
- BinarySerializer.cs
- CodeMemberMethod.cs
- StrongNameUtility.cs
- FormViewPagerRow.cs
- SchemaDeclBase.cs
- EventLogPermissionAttribute.cs
- ConfigurationSectionGroupCollection.cs
- ITextView.cs
- TemplateGroupCollection.cs
- View.cs
- HttpHandler.cs
- AnimationLayer.cs
- InvalidProgramException.cs
- BindingCollection.cs
- OracleNumber.cs
- OracleCommand.cs
- RequestStatusBarUpdateEventArgs.cs
- DataGridViewControlCollection.cs
- URI.cs
- ValidatingReaderNodeData.cs
- XmlNodeChangedEventArgs.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- SwitchLevelAttribute.cs
- DecimalAnimationUsingKeyFrames.cs
- PerformanceCounterPermissionAttribute.cs
- mactripleDES.cs
- XmlFormatExtensionPrefixAttribute.cs
- OdbcConnection.cs
- AlternateViewCollection.cs
- HttpMethodAttribute.cs
- StatusBarItemAutomationPeer.cs
- COSERVERINFO.cs
- ETagAttribute.cs
- MenuItem.cs
- PassportAuthentication.cs
- UserPersonalizationStateInfo.cs
- Html32TextWriter.cs
- EntityViewContainer.cs
- _SingleItemRequestCache.cs
- VerificationAttribute.cs
- LayoutTable.cs
- SessionStateModule.cs
- keycontainerpermission.cs
- WebControlAdapter.cs
- ExtentJoinTreeNode.cs
- SequentialOutput.cs
- WinFormsSecurity.cs
- SecurityDocument.cs
- BindStream.cs
- MarshalByRefObject.cs
- ConfigXmlText.cs
- ColumnWidthChangingEvent.cs
- ToolstripProfessionalRenderer.cs
- NavigatingCancelEventArgs.cs
- DataBindingCollectionConverter.cs
- CodeIdentifiers.cs
- ToolZone.cs
- OleDbFactory.cs
- ResourcePermissionBaseEntry.cs
- HttpVersion.cs
- TableLayoutPanelCodeDomSerializer.cs
- ButtonPopupAdapter.cs
- safemediahandle.cs
- ActiveXMessageFormatter.cs
- DoubleAnimationUsingPath.cs
- UriScheme.cs
- SafeNativeMethods.cs
- TypeUsageBuilder.cs
- XmlUtf8RawTextWriter.cs
- WorkflowApplicationAbortedException.cs
- FieldAccessException.cs
- Pens.cs
- Sql8ConformanceChecker.cs
- LabelEditEvent.cs