Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / SimpleFieldTemplateFactory.cs / 1305376 / SimpleFieldTemplateFactory.cs
namespace System.Web.DynamicData { using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.UI.WebControls; using System.Web.Hosting; // This FieldTemplateFactory is used for the simple cases where the user doesn't have // a FieldTemplate directory but wants to get basic validation logic. In a sense // it is a smarter version of a BoundField internal class SimpleFieldTemplateFactory : FieldTemplateFactory { private static bool? _directoryExists; public SimpleFieldTemplateFactory() : this(HostingEnvironment.VirtualPathProvider) { } internal SimpleFieldTemplateFactory(VirtualPathProvider vpp) : base(vpp) { VirtualPathProvider = vpp; } internal VirtualPathProvider VirtualPathProvider { get; set; } protected virtual bool DirectoryExists { get { if (!_directoryExists.HasValue) { // This is expensive so cache it. _directoryExists = VirtualPathProvider.DirectoryExists(TemplateFolderVirtualPath); } return _directoryExists.Value; } } public override IFieldTemplate CreateFieldTemplate(MetaColumn column, DataBoundControlMode mode, string uiHint) { // Call Preprocess mode so that we do set the right mode base on the the column's attributes mode = PreprocessMode(column, mode); bool readOnly = (mode == DataBoundControlMode.ReadOnly); // If the folder doesn't exist use the fallback if (!DirectoryExists) { return CreateFieldTemplate(readOnly, column); } // Always see check if the base found anything first then fall back to the simple field template IFieldTemplate fieldTemplate = base.CreateFieldTemplate(column, mode, uiHint); // If there was no field template found and the user specified a uiHint then use the default behavior if (!String.IsNullOrEmpty(uiHint)) { return fieldTemplate; } return fieldTemplate ?? CreateFieldTemplate(readOnly, column); } private IFieldTemplate CreateFieldTemplate(bool readOnly, MetaColumn column) { // By default we'll support checkbox fields for boolean and a textbox for // everything else if (column.ColumnType == typeof(bool)) { return SimpleFieldTemplateUserControl.CreateBooleanTemplate(readOnly); } return SimpleFieldTemplateUserControl.CreateTextTemplate(column, readOnly); } } } // 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
- WebPartVerb.cs
- AudioDeviceOut.cs
- SoapAttributeAttribute.cs
- RegexWorker.cs
- PropertyManager.cs
- RegexCharClass.cs
- DropShadowBitmapEffect.cs
- EnvironmentPermission.cs
- MetadataArtifactLoader.cs
- BamlTreeUpdater.cs
- LongTypeConverter.cs
- IEnumerable.cs
- TemplateBaseAction.cs
- StorageRoot.cs
- InputLanguageCollection.cs
- PointCollection.cs
- ClaimTypeElementCollection.cs
- ContextMenuStrip.cs
- LiteralControl.cs
- NullExtension.cs
- SID.cs
- BaseDataListPage.cs
- XmlSchemaAttributeGroup.cs
- HttpModuleCollection.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- Schema.cs
- SqlInternalConnection.cs
- Token.cs
- Column.cs
- ExchangeUtilities.cs
- UnaryOperationBinder.cs
- NetworkAddressChange.cs
- CheckableControlBaseAdapter.cs
- PathSegment.cs
- controlskin.cs
- XmlSchemaResource.cs
- MemoryMappedFileSecurity.cs
- ImageListUtils.cs
- FlowDocumentPageViewerAutomationPeer.cs
- ColumnHeader.cs
- SiblingIterators.cs
- COM2Enum.cs
- QueryableDataSourceHelper.cs
- InplaceBitmapMetadataWriter.cs
- DesignerLinkAdapter.cs
- TreeNodeConverter.cs
- Rfc2898DeriveBytes.cs
- PermissionRequestEvidence.cs
- SqlDataSourceCustomCommandEditor.cs
- LogReserveAndAppendState.cs
- XmlChildNodes.cs
- LOSFormatter.cs
- RootDesignerSerializerAttribute.cs
- BulletedListEventArgs.cs
- Tokenizer.cs
- ManagedWndProcTracker.cs
- DefaultValueTypeConverter.cs
- Timer.cs
- FixedSOMTable.cs
- Polygon.cs
- TableRowCollection.cs
- MetafileHeaderWmf.cs
- ResXBuildProvider.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- AnimationStorage.cs
- Application.cs
- OleDbMetaDataFactory.cs
- RunInstallerAttribute.cs
- AssemblyNameProxy.cs
- ViewStateModeByIdAttribute.cs
- DataColumn.cs
- XmlSchemaImport.cs
- DelayDesigner.cs
- FilterInvalidBodyAccessException.cs
- CodeAttachEventStatement.cs
- StructuralType.cs
- WindowsListViewGroupHelper.cs
- LayoutEvent.cs
- TemplateControlCodeDomTreeGenerator.cs
- ClientSideProviderDescription.cs
- Enumerable.cs
- CodeActivity.cs
- CustomError.cs
- PageThemeBuildProvider.cs
- PasswordPropertyTextAttribute.cs
- SqlCaseSimplifier.cs
- CompositeScriptReference.cs
- XmlSchemaFacet.cs
- cache.cs
- safelinkcollection.cs
- XpsLiterals.cs
- SymLanguageType.cs
- AdapterDictionary.cs
- httpserverutility.cs
- XmlElement.cs
- TextModifierScope.cs
- HuffCodec.cs
- DeobfuscatingStream.cs
- ZipIOModeEnforcingStream.cs
- PermissionToken.cs