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
- InstalledVoice.cs
- LayoutUtils.cs
- DictionaryContent.cs
- DataChangedEventManager.cs
- FormViewModeEventArgs.cs
- ListViewDeletedEventArgs.cs
- ViewEvent.cs
- CleanUpVirtualizedItemEventArgs.cs
- RecognizedAudio.cs
- XmlILModule.cs
- ReferencedType.cs
- SchemaEntity.cs
- ProviderConnectionPointCollection.cs
- MutexSecurity.cs
- CopyOnWriteList.cs
- WebPartDisplayModeEventArgs.cs
- TableRow.cs
- EventMappingSettingsCollection.cs
- GetPageCompletedEventArgs.cs
- BackgroundFormatInfo.cs
- CharUnicodeInfo.cs
- ColorConverter.cs
- OleDbConnectionInternal.cs
- MessagePartDescription.cs
- TdsEnums.cs
- EntitySqlQueryCacheKey.cs
- WSTrustFeb2005.cs
- OledbConnectionStringbuilder.cs
- ObjRef.cs
- AuthenticationServiceManager.cs
- ButtonFieldBase.cs
- SizeConverter.cs
- WsrmTraceRecord.cs
- ColumnHeaderConverter.cs
- PathFigureCollectionValueSerializer.cs
- TypeUsage.cs
- TranslateTransform3D.cs
- HwndStylusInputProvider.cs
- InternalMappingException.cs
- TextDecoration.cs
- DetailsViewUpdateEventArgs.cs
- PanelStyle.cs
- ConfigXmlAttribute.cs
- Utils.cs
- ZoneLinkButton.cs
- ExtensionWindowResizeGrip.cs
- MenuItemStyle.cs
- DataGridViewSelectedRowCollection.cs
- BitmapEffectDrawing.cs
- EntityDataSourceChangingEventArgs.cs
- TemplatedAdorner.cs
- ShutDownListener.cs
- Stack.cs
- TextTreeUndo.cs
- GridViewDeleteEventArgs.cs
- SafeLocalMemHandle.cs
- UserNameSecurityTokenProvider.cs
- ApplicationFileParser.cs
- milrender.cs
- OrElse.cs
- NamedElement.cs
- NativeMethodsCLR.cs
- GroupItemAutomationPeer.cs
- DataGridViewLinkCell.cs
- AttachmentService.cs
- OutputCacheSection.cs
- HandlerBase.cs
- UiaCoreApi.cs
- EditorReuseAttribute.cs
- EntityDataSourceQueryBuilder.cs
- HttpChannelHelper.cs
- SchemaCreator.cs
- SqlBulkCopy.cs
- DataBindingCollection.cs
- InputProcessorProfiles.cs
- DynamicPropertyHolder.cs
- RichTextBoxAutomationPeer.cs
- NotCondition.cs
- MissingManifestResourceException.cs
- Terminate.cs
- Attachment.cs
- DoubleCollectionValueSerializer.cs
- BamlRecords.cs
- PointCollectionValueSerializer.cs
- XamlSerializerUtil.cs
- ImageDrawing.cs
- HtmlTernaryTree.cs
- HwndMouseInputProvider.cs
- XmlReader.cs
- CommandDevice.cs
- CompareInfo.cs
- StateMachineDesignerPaint.cs
- SafeHandles.cs
- AnnotationResource.cs
- TdsParserStateObject.cs
- MenuBase.cs
- objectquery_tresulttype.cs
- CellPartitioner.cs
- PropertyTab.cs
- DataGridTableCollection.cs