Code:
/ FX-1434 / FX-1434 / 1.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
- ConnectionStringSettings.cs
- StrongNameIdentityPermission.cs
- SystemInfo.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- XpsManager.cs
- Bezier.cs
- TrustManagerMoreInformation.cs
- ByteAnimationBase.cs
- HtmlGenericControl.cs
- ProfileModule.cs
- CodeTypeMemberCollection.cs
- FormattedText.cs
- PrivilegedConfigurationManager.cs
- ProfilePropertyNameValidator.cs
- ExtenderControl.cs
- ProcessModelInfo.cs
- XmlNamedNodeMap.cs
- MediaScriptCommandRoutedEventArgs.cs
- NativeCppClassAttribute.cs
- StoragePropertyMapping.cs
- NamespaceList.cs
- DocobjHost.cs
- InstanceDescriptor.cs
- UnsafeNativeMethods.cs
- EditorZoneBase.cs
- BindingMAnagerBase.cs
- DocumentPage.cs
- CompositeTypefaceMetrics.cs
- ClickablePoint.cs
- EmbeddedMailObject.cs
- QueryStringParameter.cs
- HtmlTableRow.cs
- CodeSubDirectory.cs
- RoleManagerModule.cs
- DispatcherProcessingDisabled.cs
- SmtpCommands.cs
- Inline.cs
- VectorConverter.cs
- CachedTypeface.cs
- SQLDecimal.cs
- WindowsComboBox.cs
- Ops.cs
- XmlWriterDelegator.cs
- XPathScanner.cs
- ArrayConverter.cs
- QilInvokeLateBound.cs
- LongAverageAggregationOperator.cs
- EndpointDispatcherTable.cs
- ImageAnimator.cs
- BigInt.cs
- IProducerConsumerCollection.cs
- TextDocumentView.cs
- StylusLogic.cs
- RectangleGeometry.cs
- JapaneseCalendar.cs
- ObjectNotFoundException.cs
- HtmlGenericControl.cs
- LocalizationParserHooks.cs
- UrlMappingCollection.cs
- InputReportEventArgs.cs
- Configuration.cs
- XmlSerializerAssemblyAttribute.cs
- EnumerableRowCollection.cs
- ProfilePropertySettingsCollection.cs
- TextRangeBase.cs
- MsmqIntegrationOutputChannel.cs
- FactoryId.cs
- TypeSystem.cs
- XslNumber.cs
- RawTextInputReport.cs
- PublisherIdentityPermission.cs
- ModuleConfigurationInfo.cs
- SrgsText.cs
- followingquery.cs
- FlowLayoutSettings.cs
- HwndTarget.cs
- UIElementParagraph.cs
- DataGridAddNewRow.cs
- HtmlContainerControl.cs
- DocumentViewer.cs
- EntityDataSourceState.cs
- MetadataHelper.cs
- ColumnMapVisitor.cs
- SubMenuStyle.cs
- RegisteredArrayDeclaration.cs
- NativeWrapper.cs
- DbExpressionVisitor_TResultType.cs
- PingOptions.cs
- WSHttpTransportSecurityElement.cs
- KeyInstance.cs
- PerformanceCounter.cs
- Object.cs
- UserControl.cs
- VarRefManager.cs
- AdapterUtil.cs
- CrossContextChannel.cs
- PointCollection.cs
- MouseCaptureWithinProperty.cs
- MouseCaptureWithinProperty.cs
- RootBuilder.cs