Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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
}
}
// 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
- FixedHighlight.cs
- HtmlControl.cs
- TableColumn.cs
- RsaSecurityTokenAuthenticator.cs
- InternalEnumValidator.cs
- SyndicationItem.cs
- Win32.cs
- DataGridViewImageCell.cs
- QuaternionAnimation.cs
- DPTypeDescriptorContext.cs
- XmlSchemaAnnotated.cs
- FontWeight.cs
- FamilyTypeface.cs
- ShapeTypeface.cs
- DelegatingTypeDescriptionProvider.cs
- NetworkCredential.cs
- HttpClientCertificate.cs
- UpdateExpressionVisitor.cs
- EntityCommandExecutionException.cs
- CodePropertyReferenceExpression.cs
- ProtocolsConfigurationEntry.cs
- ToolBar.cs
- ListBoxAutomationPeer.cs
- RelatedPropertyManager.cs
- ToolConsole.cs
- TextParagraphView.cs
- Parameter.cs
- ExeContext.cs
- FormView.cs
- GestureRecognitionResult.cs
- Funcletizer.cs
- ApplicationSettingsBase.cs
- FormViewDeletedEventArgs.cs
- XPathScanner.cs
- FormViewUpdatedEventArgs.cs
- SchemaComplexType.cs
- Point3DValueSerializer.cs
- InstanceDataCollection.cs
- HandleCollector.cs
- CustomAttribute.cs
- DataBinding.cs
- DataExpression.cs
- PersonalizationProviderHelper.cs
- ProfileBuildProvider.cs
- SecurityKeyIdentifierClause.cs
- XmlNodeChangedEventManager.cs
- XmlRawWriter.cs
- BaseValidator.cs
- TrackingParameters.cs
- HMACMD5.cs
- AtomContentProperty.cs
- StronglyTypedResourceBuilder.cs
- MSHTMLHostUtil.cs
- ListArgumentProvider.cs
- OracleParameter.cs
- PropertyTabChangedEvent.cs
- HtmlTableCellCollection.cs
- ContentDisposition.cs
- DummyDataSource.cs
- PolyQuadraticBezierSegment.cs
- DrawToolTipEventArgs.cs
- DataTablePropertyDescriptor.cs
- TreeViewImageIndexConverter.cs
- CardSpaceException.cs
- CapiHashAlgorithm.cs
- SqlInternalConnection.cs
- LabelDesigner.cs
- DocumentOrderQuery.cs
- TcpPortSharing.cs
- SiteMapDataSource.cs
- CustomAssemblyResolver.cs
- SharedPersonalizationStateInfo.cs
- _BasicClient.cs
- BindableAttribute.cs
- DbConnectionPoolOptions.cs
- StylusPointPropertyId.cs
- MemberAccessException.cs
- GlobalizationAssembly.cs
- BitmapEffectDrawingContextState.cs
- XmlTextReaderImpl.cs
- CharacterBufferReference.cs
- DomNameTable.cs
- ProxyRpc.cs
- DoubleLinkList.cs
- ThicknessAnimation.cs
- EntityUtil.cs
- DataGridViewComboBoxEditingControl.cs
- cookie.cs
- FieldNameLookup.cs
- BamlLocalizableResource.cs
- KoreanCalendar.cs
- CultureNotFoundException.cs
- RadioButtonStandardAdapter.cs
- WorkerRequest.cs
- DecimalConstantAttribute.cs
- UrlPath.cs
- FtpRequestCacheValidator.cs
- DataControlField.cs
- ByteRangeDownloader.cs
- XmlSchemaImporter.cs