Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / DataKeyArray.cs / 1 / DataKeyArray.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.Security.Permissions;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataKeyArray : ICollection, IStateManager {
private ArrayList _keys;
private bool _isTracking;
///
/// Initializes a new instance of the class.
///
public DataKeyArray(ArrayList keys) {
this._keys = keys;
}
///
/// Gets the number of objects in the collection. This property is read-only.
///
public int Count {
get {
return _keys.Count;
}
}
///
/// Gets the value that specifies whether items in the can be
/// modified. This property is read-only.
///
public bool IsReadOnly {
get {
return false;
}
}
///
/// Gets a value that indicates whether the is
/// thread-safe. This property is read-only.
///
public bool IsSynchronized {
get {
return false;
}
}
///
/// Gets the object used to synchronize access to the collection. This property is read-only.
///
public object SyncRoot {
get {
return this;
}
}
///
/// Gets a at the specified index in the collection. This property is read-only.
///
public DataKey this[int index] {
get {
return _keys[index] as DataKey;
}
}
///
/// Copies the contents of the entire collection into an appending at
/// the specified index of the .
///
public void CopyTo(DataKey[] array, int index) {
((ICollection)this).CopyTo(array, index);
}
///
void ICollection.CopyTo(Array array, int index) {
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
/// Creates an enumerator for the used to iterate
/// through the collection.
///
public IEnumerator GetEnumerator() {
return _keys.GetEnumerator();
}
#region IStateManager implementation
///
bool IStateManager.IsTrackingViewState {
get {
return _isTracking;
}
}
///
void IStateManager.LoadViewState(object state) {
if (state != null) {
object[] keysState = (object[])state;
for (int i = 0; i < keysState.Length; i++) {
if (keysState[i] != null) {
((IStateManager)_keys[i]).LoadViewState(keysState[i]);
}
}
}
}
///
object IStateManager.SaveViewState() {
int keyCount = _keys.Count;
object[] keysState = new object[keyCount];
bool savedState = false;
for (int i = 0; i < keyCount; i++) {
keysState[i] = ((IStateManager)_keys[i]).SaveViewState();
if (keysState[i] != null)
savedState = true;
}
return savedState ? keysState : null;
}
///
void IStateManager.TrackViewState() {
_isTracking = true;
int keyCount = _keys.Count;
for (int i = 0; i < keyCount; i++) {
((IStateManager)_keys[i]).TrackViewState();
}
}
#endregion
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ByteArrayHelperWithString.cs
- ListSortDescriptionCollection.cs
- ElementMarkupObject.cs
- DesignerActionService.cs
- TypeDescriptionProvider.cs
- IEnumerable.cs
- ConnectionStringSettingsCollection.cs
- XmlAttributeOverrides.cs
- Metafile.cs
- XsdSchemaFileEditor.cs
- NullableFloatMinMaxAggregationOperator.cs
- PageBuildProvider.cs
- XPathNavigatorReader.cs
- AudioFormatConverter.cs
- PageParserFilter.cs
- SrgsOneOf.cs
- DateTimeUtil.cs
- UmAlQuraCalendar.cs
- WCFBuildProvider.cs
- CriticalFinalizerObject.cs
- FrameDimension.cs
- DataGridViewRowHeaderCell.cs
- DefaultValueAttribute.cs
- SQLMoney.cs
- ISessionStateStore.cs
- codemethodreferenceexpression.cs
- __Error.cs
- FormsAuthenticationEventArgs.cs
- SqlServer2KCompatibilityAnnotation.cs
- PopupRootAutomationPeer.cs
- InputScopeAttribute.cs
- Interlocked.cs
- IList.cs
- XmlElementList.cs
- SspiSecurityTokenProvider.cs
- TransformPattern.cs
- DesignerToolStripControlHost.cs
- LogLogRecord.cs
- DynamicResourceExtensionConverter.cs
- FontInfo.cs
- TimeoutValidationAttribute.cs
- SystemMulticastIPAddressInformation.cs
- TextElementAutomationPeer.cs
- StringToken.cs
- MatrixUtil.cs
- ProfileParameter.cs
- ObjectSpanRewriter.cs
- WinFormsSecurity.cs
- RadioButtonDesigner.cs
- SpanIndex.cs
- LocationReferenceValue.cs
- WindowsGraphics.cs
- HttpModuleCollection.cs
- Helpers.cs
- DefaultIfEmptyQueryOperator.cs
- LookupBindingPropertiesAttribute.cs
- EntityContainerEntitySet.cs
- DataContract.cs
- RadioButtonStandardAdapter.cs
- SamlConstants.cs
- SoapClientProtocol.cs
- HyperLinkField.cs
- DataGridView.cs
- KeyNameIdentifierClause.cs
- RoutedPropertyChangedEventArgs.cs
- CompiledAction.cs
- SwitchLevelAttribute.cs
- TemplateXamlParser.cs
- ColorAnimation.cs
- EventWaitHandleSecurity.cs
- SharedPerformanceCounter.cs
- FontCacheLogic.cs
- DispatcherSynchronizationContext.cs
- ConfigUtil.cs
- ParseChildrenAsPropertiesAttribute.cs
- SQLConvert.cs
- WindowInteropHelper.cs
- WindowsListViewScroll.cs
- GeneratedContractType.cs
- PathNode.cs
- ToolStripDropTargetManager.cs
- XmlCharacterData.cs
- DesignerCommandSet.cs
- RequestCacheEntry.cs
- DispatcherEventArgs.cs
- ContentPlaceHolder.cs
- SystemNetworkInterface.cs
- Peer.cs
- DropDownList.cs
- WebPartEditorOkVerb.cs
- FusionWrap.cs
- TypeToken.cs
- ExpressionBindings.cs
- WebBrowser.cs
- KeyToListMap.cs
- EditingCommands.cs
- QueryCreatedEventArgs.cs
- ListView.cs
- ZoomPercentageConverter.cs
- ACE.cs