Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / ObjectListItem.cs / 1305376 / ObjectListItem.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Security.Permissions; namespace System.Web.UI.MobileControls { /* * Object List Item class. * * Copyright (c) 2000 Microsoft Corporation */ ///[ ToolboxItem(false) ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] public class ObjectListItem : MobileListItem { private String[] _fields; private bool _dirty; private ObjectList _owner; internal ObjectListItem(ObjectList owner) : this(owner, null) { } internal ObjectListItem(ObjectList owner, Object dataItem) : base(dataItem, null, null) { _owner = owner; _fields = new String[owner.AllFields.Count]; } private int FieldIndexFromKey(String key) { int index = _owner.AllFields.IndexOf (key); if (index == -1) { throw new ArgumentException( SR.GetString(SR.ObjectList_FieldNotFound, key)); } return index; } /// public String this[String key] { get { return this[FieldIndexFromKey (key)]; } set { this[FieldIndexFromKey (key)] = value; } } /// public String this[int index] { get { String s = _fields[index]; return (s != null) ? s : String.Empty; } set { _fields[index] = value; if (IsTrackingViewState) { _dirty = true; } } } /// public override bool Equals(Object obj) { ObjectListItem other = obj as ObjectListItem; if (other == null) { return false; } if (_fields == null && other._fields == null) { return true; } else if (_fields == null || other._fields == null) { return false; } if (_fields.Length != other._fields.Length) { return false; } for (int i = 0; i < _fields.Length; i++) { if (this[i] != other[i]) { return false; } } if(!Value.Equals(other.Value) || !Text.Equals(other.Text)) { return false; } return true; } /// public override int GetHashCode() { if (_fields.Length > 0) { return _fields[0].GetHashCode(); } else { return Value.GetHashCode(); } } ///////////////////////////////////////////////////////////////////////// // STATE MANAGEMENT, FOR ITEM'S DATA (NON-CONTROL) STATE. ///////////////////////////////////////////////////////////////////////// internal override Object SaveDataState() { Object baseState = base.SaveDataState (); if (_dirty && _fields != null) { int fieldCount = _fields.Length; Object[] itemState = new Object[fieldCount + 1]; itemState[0] = baseState; for (int i = 0; i < fieldCount; i++) { itemState[i + 1] = _fields[i]; } return itemState; } else if (baseState != null) { return new Object[1] { baseState }; } else { return null; } } internal override void LoadDataState(Object state) { if (state != null) { Object[] itemState = (Object[])state; int fieldCount = itemState.Length; base.LoadDataState (itemState[0]); _fields = new String[fieldCount - 1]; for (int i = 1; i < fieldCount; i++) { _fields[i - 1] = (String)itemState[i]; } } } internal override bool Dirty { get { return _dirty || base.Dirty; } set { _dirty = true; base.Dirty = value; } } ///////////////////////////////////////////////////////////////////////// // EVENT BUBBLING ///////////////////////////////////////////////////////////////////////// /// protected override bool OnBubbleEvent(Object source, EventArgs e) { if (e is CommandEventArgs) { ObjectListCommandEventArgs args = new ObjectListCommandEventArgs(this, source, (CommandEventArgs)e); RaiseBubbleEvent (this, args); return true; } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Security.Permissions; namespace System.Web.UI.MobileControls { /* * Object List Item class. * * Copyright (c) 2000 Microsoft Corporation */ ///[ ToolboxItem(false) ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] public class ObjectListItem : MobileListItem { private String[] _fields; private bool _dirty; private ObjectList _owner; internal ObjectListItem(ObjectList owner) : this(owner, null) { } internal ObjectListItem(ObjectList owner, Object dataItem) : base(dataItem, null, null) { _owner = owner; _fields = new String[owner.AllFields.Count]; } private int FieldIndexFromKey(String key) { int index = _owner.AllFields.IndexOf (key); if (index == -1) { throw new ArgumentException( SR.GetString(SR.ObjectList_FieldNotFound, key)); } return index; } /// public String this[String key] { get { return this[FieldIndexFromKey (key)]; } set { this[FieldIndexFromKey (key)] = value; } } /// public String this[int index] { get { String s = _fields[index]; return (s != null) ? s : String.Empty; } set { _fields[index] = value; if (IsTrackingViewState) { _dirty = true; } } } /// public override bool Equals(Object obj) { ObjectListItem other = obj as ObjectListItem; if (other == null) { return false; } if (_fields == null && other._fields == null) { return true; } else if (_fields == null || other._fields == null) { return false; } if (_fields.Length != other._fields.Length) { return false; } for (int i = 0; i < _fields.Length; i++) { if (this[i] != other[i]) { return false; } } if(!Value.Equals(other.Value) || !Text.Equals(other.Text)) { return false; } return true; } /// public override int GetHashCode() { if (_fields.Length > 0) { return _fields[0].GetHashCode(); } else { return Value.GetHashCode(); } } ///////////////////////////////////////////////////////////////////////// // STATE MANAGEMENT, FOR ITEM'S DATA (NON-CONTROL) STATE. ///////////////////////////////////////////////////////////////////////// internal override Object SaveDataState() { Object baseState = base.SaveDataState (); if (_dirty && _fields != null) { int fieldCount = _fields.Length; Object[] itemState = new Object[fieldCount + 1]; itemState[0] = baseState; for (int i = 0; i < fieldCount; i++) { itemState[i + 1] = _fields[i]; } return itemState; } else if (baseState != null) { return new Object[1] { baseState }; } else { return null; } } internal override void LoadDataState(Object state) { if (state != null) { Object[] itemState = (Object[])state; int fieldCount = itemState.Length; base.LoadDataState (itemState[0]); _fields = new String[fieldCount - 1]; for (int i = 1; i < fieldCount; i++) { _fields[i - 1] = (String)itemState[i]; } } } internal override bool Dirty { get { return _dirty || base.Dirty; } set { _dirty = true; base.Dirty = value; } } ///////////////////////////////////////////////////////////////////////// // EVENT BUBBLING ///////////////////////////////////////////////////////////////////////// /// protected override bool OnBubbleEvent(Object source, EventArgs e) { if (e is CommandEventArgs) { ObjectListCommandEventArgs args = new ObjectListCommandEventArgs(this, source, (CommandEventArgs)e); RaiseBubbleEvent (this, args); return true; } return false; } } } // 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
- Metafile.cs
- ErrorView.xaml.cs
- peernodeimplementation.cs
- ScriptIgnoreAttribute.cs
- XmlDataContract.cs
- SafeBitVector32.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- _AutoWebProxyScriptEngine.cs
- ColorPalette.cs
- Matrix3DConverter.cs
- EncodingNLS.cs
- TraceSection.cs
- Pair.cs
- DataBindingHandlerAttribute.cs
- ServiceMoniker.cs
- ResolveCriteriaApril2005.cs
- ProcessHost.cs
- XmlTextReaderImplHelpers.cs
- QilInvokeLateBound.cs
- ToolStripGripRenderEventArgs.cs
- ProfileInfo.cs
- DefaultPropertyAttribute.cs
- Events.cs
- SecurityCookieModeValidator.cs
- XmlSortKey.cs
- WindowsSolidBrush.cs
- NativeActivity.cs
- LocalClientSecuritySettingsElement.cs
- MenuItemStyle.cs
- SByte.cs
- OutKeywords.cs
- ZipIOExtraFieldZip64Element.cs
- EdmPropertyAttribute.cs
- TextBreakpoint.cs
- WindowsListViewItemStartMenu.cs
- XmlComplianceUtil.cs
- ImageMapEventArgs.cs
- LockRecursionException.cs
- RegularExpressionValidator.cs
- FormViewInsertedEventArgs.cs
- Accessors.cs
- KeyInfo.cs
- AnimationClock.cs
- RequestResizeEvent.cs
- ManagementScope.cs
- SystemIPInterfaceStatistics.cs
- WebPartVerbCollection.cs
- PassportIdentity.cs
- SoapAttributes.cs
- EventHandlersStore.cs
- SingleAnimationUsingKeyFrames.cs
- SecurityCriticalDataForSet.cs
- Unit.cs
- ValueOfAction.cs
- LoginCancelEventArgs.cs
- ParameterCollection.cs
- MimeWriter.cs
- ConnectionProviderAttribute.cs
- ContainerVisual.cs
- DuplicateDetector.cs
- ExeContext.cs
- SqlDeflator.cs
- SrgsDocumentParser.cs
- TextElementEnumerator.cs
- KeyedCollection.cs
- SoapExtension.cs
- CheckBox.cs
- ECDiffieHellman.cs
- M3DUtil.cs
- AspCompat.cs
- CompilationPass2TaskInternal.cs
- RichTextBoxAutomationPeer.cs
- ExtensionQuery.cs
- XmlMembersMapping.cs
- EndpointIdentity.cs
- HTTPNotFoundHandler.cs
- StylusEventArgs.cs
- OutOfProcStateClientManager.cs
- EntityDataSourceDataSelection.cs
- SoapAttributeOverrides.cs
- filewebrequest.cs
- Random.cs
- ProvidePropertyAttribute.cs
- ToolBarPanel.cs
- TemplateAction.cs
- SetState.cs
- DataTableClearEvent.cs
- LineServices.cs
- XmlNodeComparer.cs
- MulticastDelegate.cs
- Calendar.cs
- PersonalizationStateInfo.cs
- ImageListUtils.cs
- NotifyInputEventArgs.cs
- DataControlPagerLinkButton.cs
- NonVisualControlAttribute.cs
- ReturnEventArgs.cs
- Tablet.cs
- DefaultSerializationProviderAttribute.cs
- BindingParameterCollection.cs