Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / listitem.cs / 1 / listitem.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Globalization; using AttributeCollection = System.Web.UI.AttributeCollection; using System.Security.Permissions; using System.Web.Util; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ListItemControlBuilder : ControlBuilder { public override bool AllowWhitespaceLiterals() { return false; } public override bool HtmlDecodeLiterals() { // ListItem text gets rendered as an encoded attribute value. // At parse time text specified as an attribute gets decoded, and so text specified as a // literal needs to go through the same process. return true; } } ///Interacts with the parser to build a ///control. /// [ ControlBuilderAttribute(typeof(ListItemControlBuilder)), TypeConverterAttribute(typeof(ExpandableObjectConverter)), ParseChildren(true, "Text"), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ListItem : IStateManager, IParserAccessor, IAttributeAccessor { private bool selected; private bool marked; private bool textisdirty; private bool valueisdirty; private bool enabled; private bool enabledisdirty; private string text; private string value; private AttributeCollection _attributes; ///Constructs a list item control and defines /// its properties. This class cannot be inherited. ////// public ListItem() : this(null, null) { } ///Initializes a new instance of the ///class. /// public ListItem(string text) : this(text, null) { } ///Initializes a new instance of the ///class with the specified text data. /// public ListItem(string text, string value) : this(text, value, true) { } ///Initializes a new instance of the ///class with the specified text data. /// public ListItem(string text, string value, bool enabled) { this.text = text; this.value = value; this.enabled = enabled; } ///Initializes a new instance of the ///class with the /// specified text and value data. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public AttributeCollection Attributes { get { if (_attributes == null) _attributes = new AttributeCollection(new StateBag(true)); return _attributes; } } ///Gets the collection of attribute name/value pairs expressed on the list item /// control but not supported by the control's strongly typed properties. ////// Internal property used to manage dirty state of ListItem. /// internal bool Dirty { get { return (textisdirty || valueisdirty || enabledisdirty); } set { textisdirty = value; valueisdirty = value; enabledisdirty = value; } } [ DefaultValue(true) ] public bool Enabled { get { return enabled; } set { enabled = value; if (((IStateManager)this).IsTrackingViewState) enabledisdirty = true; } } internal bool HasAttributes { get { return _attributes != null && _attributes.Count > 0; } } ////// [ DefaultValue(false), TypeConverter(typeof(MinimizableAttributeTypeConverter)) ] public bool Selected { get { return selected; } set { selected = value; } } ///Specifies a value indicating whether the /// item is selected. ////// [ Localizable(true), DefaultValue(""), PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty) ] public string Text { get { if (text != null) return text; if (value != null) return value; return String.Empty; } set { text = value; if (((IStateManager)this).IsTrackingViewState) textisdirty = true; } } ///Gets or sets the display text of the list /// item control. ////// [ Localizable(true), DefaultValue("") ] public string Value { get { if (value != null) return value; if (text != null) return text; return String.Empty; } set { this.value = value; if (((IStateManager)this).IsTrackingViewState) valueisdirty =true; } } ///Gets or sets the value content of the list item control. ///public override int GetHashCode() { return HashCodeCombiner.CombineHashCodes(Value.GetHashCode(), Text.GetHashCode()); } /// /// /// public override bool Equals(object o) { ListItem other = o as ListItem; if (other != null) { return Value.Equals(other.Value) && Text.Equals(other.Text); } return false; } ////// public static ListItem FromString(string s) { return new ListItem(s); } ///Creates a ///from the specified string. /// /// public override string ToString() { return this.Text; } ////// /// Return true if tracking state changes. /// Method of private interface, IStateManager. /// bool IStateManager.IsTrackingViewState { get { return marked; } } ///void IStateManager.LoadViewState(object state) { LoadViewState(state); } internal void LoadViewState(object state) { if (state != null) { if (state is Triplet) { Triplet t = (Triplet) state; if (t.First != null) { Text = (string) t.First; } if (t.Second != null) { Value = (string) t.Second; } if (t.Third != null) { try { Enabled = (bool) t.Third; } catch { } } } else if (state is Pair) { Pair p = (Pair) state; if (p.First != null) Text = (string) p.First; Value = (string) p.Second; } else Text = (string) state; } } /// void IStateManager.TrackViewState() { TrackViewState(); } internal void TrackViewState() { marked = true; } internal void RenderAttributes(HtmlTextWriter writer) { if (_attributes != null) { _attributes.AddAttributes(writer); } } /// object IStateManager.SaveViewState() { return SaveViewState(); } internal object SaveViewState() { string text = null; string value = null; if(textisdirty) { text = Text; } if(valueisdirty) { value = Value; } if(enabledisdirty) { return new Triplet(text, value, Enabled); } else if(valueisdirty) { return new Pair(text, value); } else if(textisdirty) { return text; } return null; } /// /// /// Returns the attribute value of the list item control /// having the specified attribute name. /// string IAttributeAccessor.GetAttribute(string name) { return Attributes[name]; } ////// /// void IAttributeAccessor.SetAttribute(string name, string value) { Attributes[name] = value; } ///Sets an attribute of the list /// item control with the specified name and value. ////// /// void IParserAccessor.AddParsedSubObject(object obj) { if (obj is LiteralControl) { Text = ((LiteralControl)obj).Text; } else { if (obj is DataBoundLiteralControl) { throw new HttpException(SR.GetString(SR.Control_Cannot_Databind, "ListItem")); } else { throw new HttpException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "ListItem", obj.GetType().Name.ToString(CultureInfo.InvariantCulture))); } } } ///Allows the ////// property to be persisted as inner content. /// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private void ResetText() { Text = null; } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private void ResetValue() { Value = null; } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private bool ShouldSerializeText() { return (text != null) && (text.Length != 0); } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private bool ShouldSerializeValue() { return (value != null) && (value.Length != 0); } } } // 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.ComponentModel; using System.Globalization; using AttributeCollection = System.Web.UI.AttributeCollection; using System.Security.Permissions; using System.Web.Util; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ListItemControlBuilder : ControlBuilder { public override bool AllowWhitespaceLiterals() { return false; } public override bool HtmlDecodeLiterals() { // ListItem text gets rendered as an encoded attribute value. // At parse time text specified as an attribute gets decoded, and so text specified as a // literal needs to go through the same process. return true; } } ///Interacts with the parser to build a ///control. /// [ ControlBuilderAttribute(typeof(ListItemControlBuilder)), TypeConverterAttribute(typeof(ExpandableObjectConverter)), ParseChildren(true, "Text"), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ListItem : IStateManager, IParserAccessor, IAttributeAccessor { private bool selected; private bool marked; private bool textisdirty; private bool valueisdirty; private bool enabled; private bool enabledisdirty; private string text; private string value; private AttributeCollection _attributes; ///Constructs a list item control and defines /// its properties. This class cannot be inherited. ////// public ListItem() : this(null, null) { } ///Initializes a new instance of the ///class. /// public ListItem(string text) : this(text, null) { } ///Initializes a new instance of the ///class with the specified text data. /// public ListItem(string text, string value) : this(text, value, true) { } ///Initializes a new instance of the ///class with the specified text data. /// public ListItem(string text, string value, bool enabled) { this.text = text; this.value = value; this.enabled = enabled; } ///Initializes a new instance of the ///class with the /// specified text and value data. /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public AttributeCollection Attributes { get { if (_attributes == null) _attributes = new AttributeCollection(new StateBag(true)); return _attributes; } } ///Gets the collection of attribute name/value pairs expressed on the list item /// control but not supported by the control's strongly typed properties. ////// Internal property used to manage dirty state of ListItem. /// internal bool Dirty { get { return (textisdirty || valueisdirty || enabledisdirty); } set { textisdirty = value; valueisdirty = value; enabledisdirty = value; } } [ DefaultValue(true) ] public bool Enabled { get { return enabled; } set { enabled = value; if (((IStateManager)this).IsTrackingViewState) enabledisdirty = true; } } internal bool HasAttributes { get { return _attributes != null && _attributes.Count > 0; } } ////// [ DefaultValue(false), TypeConverter(typeof(MinimizableAttributeTypeConverter)) ] public bool Selected { get { return selected; } set { selected = value; } } ///Specifies a value indicating whether the /// item is selected. ////// [ Localizable(true), DefaultValue(""), PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty) ] public string Text { get { if (text != null) return text; if (value != null) return value; return String.Empty; } set { text = value; if (((IStateManager)this).IsTrackingViewState) textisdirty = true; } } ///Gets or sets the display text of the list /// item control. ////// [ Localizable(true), DefaultValue("") ] public string Value { get { if (value != null) return value; if (text != null) return text; return String.Empty; } set { this.value = value; if (((IStateManager)this).IsTrackingViewState) valueisdirty =true; } } ///Gets or sets the value content of the list item control. ///public override int GetHashCode() { return HashCodeCombiner.CombineHashCodes(Value.GetHashCode(), Text.GetHashCode()); } /// /// /// public override bool Equals(object o) { ListItem other = o as ListItem; if (other != null) { return Value.Equals(other.Value) && Text.Equals(other.Text); } return false; } ////// public static ListItem FromString(string s) { return new ListItem(s); } ///Creates a ///from the specified string. /// /// public override string ToString() { return this.Text; } ////// /// Return true if tracking state changes. /// Method of private interface, IStateManager. /// bool IStateManager.IsTrackingViewState { get { return marked; } } ///void IStateManager.LoadViewState(object state) { LoadViewState(state); } internal void LoadViewState(object state) { if (state != null) { if (state is Triplet) { Triplet t = (Triplet) state; if (t.First != null) { Text = (string) t.First; } if (t.Second != null) { Value = (string) t.Second; } if (t.Third != null) { try { Enabled = (bool) t.Third; } catch { } } } else if (state is Pair) { Pair p = (Pair) state; if (p.First != null) Text = (string) p.First; Value = (string) p.Second; } else Text = (string) state; } } /// void IStateManager.TrackViewState() { TrackViewState(); } internal void TrackViewState() { marked = true; } internal void RenderAttributes(HtmlTextWriter writer) { if (_attributes != null) { _attributes.AddAttributes(writer); } } /// object IStateManager.SaveViewState() { return SaveViewState(); } internal object SaveViewState() { string text = null; string value = null; if(textisdirty) { text = Text; } if(valueisdirty) { value = Value; } if(enabledisdirty) { return new Triplet(text, value, Enabled); } else if(valueisdirty) { return new Pair(text, value); } else if(textisdirty) { return text; } return null; } /// /// /// Returns the attribute value of the list item control /// having the specified attribute name. /// string IAttributeAccessor.GetAttribute(string name) { return Attributes[name]; } ////// /// void IAttributeAccessor.SetAttribute(string name, string value) { Attributes[name] = value; } ///Sets an attribute of the list /// item control with the specified name and value. ////// /// void IParserAccessor.AddParsedSubObject(object obj) { if (obj is LiteralControl) { Text = ((LiteralControl)obj).Text; } else { if (obj is DataBoundLiteralControl) { throw new HttpException(SR.GetString(SR.Control_Cannot_Databind, "ListItem")); } else { throw new HttpException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "ListItem", obj.GetType().Name.ToString(CultureInfo.InvariantCulture))); } } } ///Allows the ////// property to be persisted as inner content. /// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private void ResetText() { Text = null; } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private void ResetValue() { Value = null; } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private bool ShouldSerializeText() { return (text != null) && (text.Length != 0); } ////// Do not change the signature or remove this method. It is called via reflection /// to support correct serialization behavior for Text and Value which are /// implemented as dependent properties. /// private bool ShouldSerializeValue() { return (value != null) && (value.Length != 0); } } } // 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
- TemplateComponentConnector.cs
- SplayTreeNode.cs
- EndEvent.cs
- TemplateControlParser.cs
- DateTimeUtil.cs
- VerificationAttribute.cs
- ThemeInfoAttribute.cs
- NameValueFileSectionHandler.cs
- SchemaImporterExtensionElement.cs
- ServiceHandle.cs
- StringKeyFrameCollection.cs
- FileCodeGroup.cs
- RegexCompiler.cs
- TextParaLineResult.cs
- UnknownWrapper.cs
- SponsorHelper.cs
- FileInfo.cs
- Identity.cs
- SmiContextFactory.cs
- ICspAsymmetricAlgorithm.cs
- MarkupCompilePass2.cs
- SingleKeyFrameCollection.cs
- DataGridItemCollection.cs
- MaskedTextBoxTextEditor.cs
- MatrixAnimationUsingKeyFrames.cs
- MsmqAppDomainProtocolHandler.cs
- XmlSignatureProperties.cs
- NameValuePair.cs
- EntityDataSourceReferenceGroup.cs
- NativeMethods.cs
- WebRequestModuleElement.cs
- OracleConnection.cs
- InvalidCommandTreeException.cs
- IntSecurity.cs
- XMLDiffLoader.cs
- PairComparer.cs
- GroupStyle.cs
- parserscommon.cs
- MultiBindingExpression.cs
- FrameworkElement.cs
- ListItemConverter.cs
- TextLine.cs
- XmlReaderSettings.cs
- FloatMinMaxAggregationOperator.cs
- EventLogPropertySelector.cs
- MeasureData.cs
- EventRoute.cs
- ContainerControl.cs
- BamlTreeMap.cs
- Source.cs
- DrawingGroup.cs
- DataRowComparer.cs
- UIElement3DAutomationPeer.cs
- HtmlValidationSummaryAdapter.cs
- RepeatButtonAutomationPeer.cs
- ClientSettingsProvider.cs
- HttpResponseWrapper.cs
- Baml2006KnownTypes.cs
- xsdvalidator.cs
- FtpWebRequest.cs
- oledbconnectionstring.cs
- Activator.cs
- Model3DCollection.cs
- SecurityHelper.cs
- EventMappingSettingsCollection.cs
- TagNameToTypeMapper.cs
- ReflectTypeDescriptionProvider.cs
- SecurityChannelFaultConverter.cs
- Item.cs
- MarkupWriter.cs
- MethodAccessException.cs
- GridViewAutomationPeer.cs
- TypeInitializationException.cs
- ResourcePermissionBase.cs
- VariableQuery.cs
- ToolStripPanelRenderEventArgs.cs
- StyleXamlParser.cs
- DescendantBaseQuery.cs
- FontStyle.cs
- CompressionTracing.cs
- MemberDomainMap.cs
- LinkTarget.cs
- ComponentCommands.cs
- XPathItem.cs
- RijndaelManaged.cs
- OpacityConverter.cs
- StatusBarAutomationPeer.cs
- TextShapeableCharacters.cs
- DropShadowEffect.cs
- DbDataReader.cs
- KoreanCalendar.cs
- AlternateView.cs
- TextDecorationLocationValidation.cs
- BufferedGraphicsManager.cs
- NonBatchDirectoryCompiler.cs
- SemanticTag.cs
- DataGridViewDataErrorEventArgs.cs
- invalidudtexception.cs
- IndexedString.cs
- XPathNodeIterator.cs