Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / LiteralControl.cs / 1305376 / LiteralControl.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Control that holds a literal string
*
* Copyright (c) 1999 Microsoft Corporation
*/
namespace System.Web.UI {
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.IO;
///
/// Defines the properties and methods of the LiteralControl class. A
/// literal control is usually rendered as HTML text on a page.
///
/// LiteralControls behave as text holders, i.e., the parent of a LiteralControl may decide
/// to extract its text, and remove the control from its Control collection (typically for
/// performance reasons).
/// Therefore a control derived from LiteralControl must do any preprocessing of its Text
/// when it hands it out, that it would otherwise have done in its Render implementation.
///
///
[
ToolboxItem(false)
]
public class LiteralControl : Control, ITextControl {
internal string _text;
///
/// Creates a control that holds a literal string.
///
public LiteralControl() {
PreventAutoID();
SetEnableViewStateInternal(false);
}
///
/// Initializes a new instance of the LiteralControl class with
/// the specified text.
///
public LiteralControl(string text) : this() {
_text = (text != null) ? text : String.Empty;
}
///
/// Gets or sets the text content of the literal control.
///
public virtual string Text {
get {
return _text;
}
set {
_text = (value != null) ? value : String.Empty;
}
}
protected override ControlCollection CreateControlCollection() {
return new EmptyControlCollection(this);
}
///
/// Saves any state that was modified after mark.
///
[System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected internal override void Render(HtmlTextWriter output) {
output.Write(_text);
}
internal override void InitRecursive(Control namingContainer) {
ResolveAdapter();
if (AdapterInternal != null) {
AdapterInternal.OnInit(EventArgs.Empty);
}
else {
OnInit(EventArgs.Empty);
}
}
internal override void LoadRecursive() {
if (AdapterInternal != null) {
AdapterInternal.OnLoad(EventArgs.Empty);
}
else {
OnLoad(EventArgs.Empty);
}
}
internal override void PreRenderRecursiveInternal() {
if (AdapterInternal != null) {
AdapterInternal.OnPreRender(EventArgs.Empty);
}
else {
OnPreRender(EventArgs.Empty);
}
}
internal override void UnloadRecursive(bool dispose) {
if (AdapterInternal != null) {
AdapterInternal.OnUnload(EventArgs.Empty);
}
else {
OnUnload(EventArgs.Empty);
}
//
if (dispose)
Dispose();
}
}
/*
* Class used to access literal strings stored in a resource (perf optimization).
* This class is only public because it needs to be used by the generated classes.
* Users should not use directly.
*/
internal sealed class ResourceBasedLiteralControl : LiteralControl {
private TemplateControl _tplControl;
private int _offset; // Offset of the start of this string in the resource
private int _size; // Size of this string in bytes
private bool _fAsciiOnly; // Does the string contain only 7-bit ascii characters
internal ResourceBasedLiteralControl(TemplateControl tplControl, int offset, int size, bool fAsciiOnly) {
// Make sure we don't access invalid data
if (offset < 0 || offset+size > tplControl.MaxResourceOffset)
throw new ArgumentException();
_tplControl = tplControl;
_offset = offset;
_size = size;
_fAsciiOnly = fAsciiOnly;
PreventAutoID();
EnableViewState = false;
}
public override string Text {
get {
// If it's just a normal string, call the base
if (_size == 0)
return base.Text;
return StringResourceManager.ResourceToString(
_tplControl.StringResourcePointer, _offset, _size);
}
set {
// From now on, this will behave like a normal LiteralControl
_size = 0;
base.Text = value;
}
}
protected internal override void Render(HtmlTextWriter output) {
// If it's just a normal string, call the base
if (_size == 0) {
base.Render(output);
return;
}
output.WriteUTF8ResourceString(_tplControl.StringResourcePointer, _offset, _size, _fAsciiOnly);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* Control that holds a literal string
*
* Copyright (c) 1999 Microsoft Corporation
*/
namespace System.Web.UI {
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.IO;
///
/// Defines the properties and methods of the LiteralControl class. A
/// literal control is usually rendered as HTML text on a page.
///
/// LiteralControls behave as text holders, i.e., the parent of a LiteralControl may decide
/// to extract its text, and remove the control from its Control collection (typically for
/// performance reasons).
/// Therefore a control derived from LiteralControl must do any preprocessing of its Text
/// when it hands it out, that it would otherwise have done in its Render implementation.
///
///
[
ToolboxItem(false)
]
public class LiteralControl : Control, ITextControl {
internal string _text;
///
/// Creates a control that holds a literal string.
///
public LiteralControl() {
PreventAutoID();
SetEnableViewStateInternal(false);
}
///
/// Initializes a new instance of the LiteralControl class with
/// the specified text.
///
public LiteralControl(string text) : this() {
_text = (text != null) ? text : String.Empty;
}
///
/// Gets or sets the text content of the literal control.
///
public virtual string Text {
get {
return _text;
}
set {
_text = (value != null) ? value : String.Empty;
}
}
protected override ControlCollection CreateControlCollection() {
return new EmptyControlCollection(this);
}
///
/// Saves any state that was modified after mark.
///
[System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
protected internal override void Render(HtmlTextWriter output) {
output.Write(_text);
}
internal override void InitRecursive(Control namingContainer) {
ResolveAdapter();
if (AdapterInternal != null) {
AdapterInternal.OnInit(EventArgs.Empty);
}
else {
OnInit(EventArgs.Empty);
}
}
internal override void LoadRecursive() {
if (AdapterInternal != null) {
AdapterInternal.OnLoad(EventArgs.Empty);
}
else {
OnLoad(EventArgs.Empty);
}
}
internal override void PreRenderRecursiveInternal() {
if (AdapterInternal != null) {
AdapterInternal.OnPreRender(EventArgs.Empty);
}
else {
OnPreRender(EventArgs.Empty);
}
}
internal override void UnloadRecursive(bool dispose) {
if (AdapterInternal != null) {
AdapterInternal.OnUnload(EventArgs.Empty);
}
else {
OnUnload(EventArgs.Empty);
}
//
if (dispose)
Dispose();
}
}
/*
* Class used to access literal strings stored in a resource (perf optimization).
* This class is only public because it needs to be used by the generated classes.
* Users should not use directly.
*/
internal sealed class ResourceBasedLiteralControl : LiteralControl {
private TemplateControl _tplControl;
private int _offset; // Offset of the start of this string in the resource
private int _size; // Size of this string in bytes
private bool _fAsciiOnly; // Does the string contain only 7-bit ascii characters
internal ResourceBasedLiteralControl(TemplateControl tplControl, int offset, int size, bool fAsciiOnly) {
// Make sure we don't access invalid data
if (offset < 0 || offset+size > tplControl.MaxResourceOffset)
throw new ArgumentException();
_tplControl = tplControl;
_offset = offset;
_size = size;
_fAsciiOnly = fAsciiOnly;
PreventAutoID();
EnableViewState = false;
}
public override string Text {
get {
// If it's just a normal string, call the base
if (_size == 0)
return base.Text;
return StringResourceManager.ResourceToString(
_tplControl.StringResourcePointer, _offset, _size);
}
set {
// From now on, this will behave like a normal LiteralControl
_size = 0;
base.Text = value;
}
}
protected internal override void Render(HtmlTextWriter output) {
// If it's just a normal string, call the base
if (_size == 0) {
base.Render(output);
return;
}
output.WriteUTF8ResourceString(_tplControl.StringResourcePointer, _offset, _size, _fAsciiOnly);
}
}
}
// 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
- KeyValuePairs.cs
- Propagator.cs
- SqlTriggerAttribute.cs
- ListDictionaryInternal.cs
- OutputCacheProfile.cs
- HttpClientCredentialType.cs
- MouseGestureValueSerializer.cs
- DocumentViewerBase.cs
- XmlEventCache.cs
- Vector3D.cs
- TreeView.cs
- RegexFCD.cs
- PropertyEntry.cs
- Header.cs
- GridViewPageEventArgs.cs
- WebPartMovingEventArgs.cs
- ParameterExpression.cs
- ClientSettingsSection.cs
- StreamGeometry.cs
- XPathMessageFilterTable.cs
- XamlBuildProvider.cs
- ExtensionQuery.cs
- ZipIOLocalFileHeader.cs
- SingleTagSectionHandler.cs
- NetWebProxyFinder.cs
- CompoundFileIOPermission.cs
- PixelFormats.cs
- TdsEnums.cs
- WinFormsUtils.cs
- WizardPanel.cs
- DictionaryContent.cs
- XmlIlGenerator.cs
- RtfFormatStack.cs
- DateRangeEvent.cs
- SourceItem.cs
- Keyboard.cs
- Semaphore.cs
- EventLogPermissionAttribute.cs
- RangeValueProviderWrapper.cs
- DelegatingTypeDescriptionProvider.cs
- TagPrefixInfo.cs
- _NestedMultipleAsyncResult.cs
- ArithmeticException.cs
- GlyphRunDrawing.cs
- GlyphingCache.cs
- LambdaCompiler.Logical.cs
- MemberPath.cs
- TableCellAutomationPeer.cs
- RolePrincipal.cs
- DataGridViewSelectedColumnCollection.cs
- TypeDefinition.cs
- TypeConstant.cs
- XmlCharCheckingReader.cs
- ToolStripSettings.cs
- FileSystemEventArgs.cs
- HtmlAnchor.cs
- PartialList.cs
- BaseCollection.cs
- WebServiceTypeData.cs
- WindowsPrincipal.cs
- RangeBase.cs
- AliasGenerator.cs
- CrossAppDomainChannel.cs
- Util.cs
- OperationContext.cs
- MachineKeyConverter.cs
- embossbitmapeffect.cs
- Int32CollectionConverter.cs
- TagPrefixCollection.cs
- WindowExtensionMethods.cs
- OutputCacheProfileCollection.cs
- StrokeNodeEnumerator.cs
- BaseTemplateBuildProvider.cs
- WindowsFont.cs
- SaveWorkflowAsyncResult.cs
- ToolStripDropDownItemDesigner.cs
- GroupByQueryOperator.cs
- RegexFCD.cs
- XmlSchemaProviderAttribute.cs
- DBCSCodePageEncoding.cs
- SqlDataSourceEnumerator.cs
- ConnectionManager.cs
- IntSecurity.cs
- TransformerConfigurationWizardBase.cs
- SHA1.cs
- EraserBehavior.cs
- HttpVersion.cs
- SymLanguageType.cs
- EntityRecordInfo.cs
- _SpnDictionary.cs
- HttpClientCertificate.cs
- ReferenceEqualityComparer.cs
- WizardForm.cs
- ToolStripContainer.cs
- TypeLoadException.cs
- HandleRef.cs
- XmlILAnnotation.cs
- SafeLibraryHandle.cs
- ProfileProvider.cs
- Rotation3DKeyFrameCollection.cs