Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / LiteralControl.cs / 1 / 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;
using System.Security.Permissions;
///
/// 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)
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class LiteralControl : Control, ITextControl
#if ORCAS
, IPaginationInfo
#endif
{
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);
}
#if ORCAS
///
bool IPaginationInfo.PaginateChildren {
get {
return PaginateChildren;
}
}
///
protected virtual bool PaginateChildren {
get {
return false;
}
}
///
int IPaginationInfo.Weight {
get {
return Weight;
}
}
///
protected virtual int Weight {
get {
int length = _text.Length;
if (length >= 50) {
return 100;
}
for (int i = 0; i < length; i++) {
if (i==50 || !Char.IsWhiteSpace(_text, i)) {
return 100;
}
}
return 0;
}
}
#endif
///
/// Saves any state that was modified after mark.
///
protected internal override void Render(HtmlTextWriter output) {
output.Write(_text);
}
internal override void InitRecursive(Control namingContainer) {
ResolveAdapter();
if (_adapter != null) {
_adapter.OnInit(EventArgs.Empty);
}
else {
OnInit(EventArgs.Empty);
}
}
internal override void LoadRecursive() {
if(_adapter != null) {
_adapter.OnLoad(EventArgs.Empty);
}
else {
OnLoad(EventArgs.Empty);
}
}
internal override void PreRenderRecursiveInternal() {
if(_adapter != null) {
_adapter.OnPreRender(EventArgs.Empty);
}
else {
OnPreRender(EventArgs.Empty);
}
}
internal override void UnloadRecursive(bool dispose) {
if(_adapter != null) {
_adapter.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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CollectionViewGroupRoot.cs
- DataGridCellAutomationPeer.cs
- SignatureToken.cs
- BinaryObjectInfo.cs
- XamlReaderHelper.cs
- CollaborationHelperFunctions.cs
- PersonalizationProviderHelper.cs
- SqlBuilder.cs
- ConnectionManager.cs
- ErrorTableItemStyle.cs
- TargetPerspective.cs
- TransactionFlowBindingElementImporter.cs
- HitTestDrawingContextWalker.cs
- RoleManagerSection.cs
- PageStatePersister.cs
- HttpConfigurationSystem.cs
- ListViewDeletedEventArgs.cs
- DBParameter.cs
- DataGridViewComboBoxCell.cs
- ModelPerspective.cs
- ObjectListTitleAttribute.cs
- CodeFieldReferenceExpression.cs
- Operator.cs
- ReliableSessionBindingElementImporter.cs
- DataGridTemplateColumn.cs
- XmlReader.cs
- UnknownWrapper.cs
- WebControlAdapter.cs
- ActionMismatchAddressingException.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- EncryptedType.cs
- SocketInformation.cs
- columnmapfactory.cs
- Rectangle.cs
- XmlSerializerVersionAttribute.cs
- ToggleButtonAutomationPeer.cs
- ADMembershipProvider.cs
- DesignerDataTable.cs
- StaticSiteMapProvider.cs
- Compiler.cs
- _HeaderInfoTable.cs
- CompilationUnit.cs
- SettingsProperty.cs
- WinCategoryAttribute.cs
- TreeViewHitTestInfo.cs
- CodeTryCatchFinallyStatement.cs
- WindowsListView.cs
- BitmapEffectOutputConnector.cs
- FilteredDataSetHelper.cs
- WsdlInspector.cs
- WebPartDeleteVerb.cs
- DrawingState.cs
- NamespaceImport.cs
- UidManager.cs
- SqlNodeTypeOperators.cs
- SmtpFailedRecipientException.cs
- Win32SafeHandles.cs
- MasterPageParser.cs
- ArgumentException.cs
- MetafileHeader.cs
- ScriptManager.cs
- ISFClipboardData.cs
- WebPartCloseVerb.cs
- WebScriptMetadataFormatter.cs
- StoreUtilities.cs
- WebPartMenuStyle.cs
- ThumbAutomationPeer.cs
- ForEach.cs
- ToolStripPanelRenderEventArgs.cs
- RedistVersionInfo.cs
- StrokeCollectionDefaultValueFactory.cs
- TrackPointCollection.cs
- UnsignedPublishLicense.cs
- VideoDrawing.cs
- LayoutEditorPart.cs
- PasswordDeriveBytes.cs
- XmlSchemaAttributeGroupRef.cs
- UIElementParaClient.cs
- DefaultObjectSerializer.cs
- SafeBuffer.cs
- connectionpool.cs
- FacetDescriptionElement.cs
- PeerMaintainer.cs
- MemoryStream.cs
- ServiceHostingEnvironment.cs
- DNS.cs
- ServiceContractDetailViewControl.cs
- ArrayTypeMismatchException.cs
- ObfuscationAttribute.cs
- ChannelDispatcherBase.cs
- KeySplineConverter.cs
- NestedContainer.cs
- ImageBrush.cs
- HwndSourceKeyboardInputSite.cs
- TreeView.cs
- ObjectViewEntityCollectionData.cs
- QueryFunctions.cs
- ListParaClient.cs
- DataServiceQueryOfT.cs
- XmlLangPropertyAttribute.cs