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
- XmlValueConverter.cs
- BitmapEffectDrawing.cs
- DataGridViewCellCancelEventArgs.cs
- SoapIgnoreAttribute.cs
- SqlCommandSet.cs
- WebSysDefaultValueAttribute.cs
- XmlAttributeHolder.cs
- GregorianCalendar.cs
- HuffModule.cs
- CultureSpecificStringDictionary.cs
- PropertyKey.cs
- TextServicesDisplayAttribute.cs
- ResourcePool.cs
- PropVariant.cs
- CodeMethodReturnStatement.cs
- DescendentsWalker.cs
- OAVariantLib.cs
- AQNBuilder.cs
- MsmqReceiveHelper.cs
- DataViewSettingCollection.cs
- NavigatorInput.cs
- EntryPointNotFoundException.cs
- CodeGeneratorOptions.cs
- DisplayMemberTemplateSelector.cs
- MarshalByRefObject.cs
- PnrpPeerResolverBindingElement.cs
- Message.cs
- StorageAssociationSetMapping.cs
- AspNetSynchronizationContext.cs
- Stack.cs
- IsolatedStorageFilePermission.cs
- X509CertificateCollection.cs
- FunctionDescription.cs
- OrderByExpression.cs
- BroadcastEventHelper.cs
- BaseCodePageEncoding.cs
- MediaEntryAttribute.cs
- JsonQueryStringConverter.cs
- ForwardPositionQuery.cs
- XmlSchemaGroup.cs
- PermissionToken.cs
- InertiaTranslationBehavior.cs
- SplitterPanel.cs
- SectionVisual.cs
- ResourceDisplayNameAttribute.cs
- BaseResourcesBuildProvider.cs
- ArraySortHelper.cs
- Int16Storage.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ProgressChangedEventArgs.cs
- PropertyGridEditorPart.cs
- SynchronizingStream.cs
- WindowsFormsHelpers.cs
- BehaviorEditorPart.cs
- XamlSerializerUtil.cs
- DocumentDesigner.cs
- RelatedView.cs
- CodeGeneratorOptions.cs
- WebPart.cs
- HostSecurityManager.cs
- ErrorFormatterPage.cs
- ZipIOExtraFieldZip64Element.cs
- StackOverflowException.cs
- AvTraceFormat.cs
- ContainerVisual.cs
- LineSegment.cs
- SQLMoney.cs
- Inline.cs
- TransactionContextValidator.cs
- AsyncParams.cs
- ViewStateChangedEventArgs.cs
- WindowsAltTab.cs
- CheckBoxRenderer.cs
- CodeSnippetTypeMember.cs
- PeerCollaboration.cs
- HMACSHA256.cs
- SqlCommand.cs
- DrawingContextWalker.cs
- AppDomain.cs
- formatter.cs
- DesignerDataParameter.cs
- XmlElement.cs
- InvalidEnumArgumentException.cs
- Annotation.cs
- ACE.cs
- BaseTemplateCodeDomTreeGenerator.cs
- StyleCollectionEditor.cs
- PeerObject.cs
- ComponentResourceManager.cs
- dataprotectionpermissionattribute.cs
- SimpleHandlerBuildProvider.cs
- ParameterToken.cs
- ToolStripDropDownClosingEventArgs.cs
- LogicalTreeHelper.cs
- Roles.cs
- StylusDevice.cs
- TextEditorLists.cs
- VersionedStreamOwner.cs
- SourceLineInfo.cs
- OTFRasterizer.cs