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
- SchemaNamespaceManager.cs
- BaseParser.cs
- DataGridHeaderBorder.cs
- ConfigurationManagerHelperFactory.cs
- EntityDataSourceChangingEventArgs.cs
- EditorZone.cs
- ExtensionSimplifierMarkupObject.cs
- TemplateControlBuildProvider.cs
- SqlDataReader.cs
- ReliableMessagingVersion.cs
- CompilerScope.cs
- DifferencingCollection.cs
- XPathNodeIterator.cs
- Deflater.cs
- DataTrigger.cs
- HashAlgorithm.cs
- BuildProviderCollection.cs
- DocumentAutomationPeer.cs
- XmlSerializerNamespaces.cs
- Lazy.cs
- OdbcConnectionHandle.cs
- SecurityPermission.cs
- Int64Storage.cs
- TraceLog.cs
- UInt64Converter.cs
- ConfigXmlCDataSection.cs
- ToolBarButton.cs
- QuadraticBezierSegment.cs
- FormViewDeleteEventArgs.cs
- NavigatorInput.cs
- CalendarItem.cs
- DataSourceProvider.cs
- Debugger.cs
- DependencyPropertyAttribute.cs
- ModifierKeysConverter.cs
- PerfCounters.cs
- SymbolType.cs
- SuppressMessageAttribute.cs
- WindowsGraphicsCacheManager.cs
- FileFormatException.cs
- Vector3DCollectionValueSerializer.cs
- TextTreePropertyUndoUnit.cs
- ListViewTableCell.cs
- SqlTriggerContext.cs
- FileRecordSequenceHelper.cs
- RoutedEventValueSerializer.cs
- RequestUriProcessor.cs
- Range.cs
- FontEmbeddingManager.cs
- SoapCommonClasses.cs
- SchemaAttDef.cs
- AspNetHostingPermission.cs
- WebServiceEnumData.cs
- CompensationTokenData.cs
- CustomPopupPlacement.cs
- ImportedNamespaceContextItem.cs
- ParserContext.cs
- PeerDuplexChannelListener.cs
- CommandField.cs
- DbReferenceCollection.cs
- AlgoModule.cs
- ShaderEffect.cs
- MimeFormReflector.cs
- StylusPlugInCollection.cs
- TextCompositionEventArgs.cs
- DataGridViewCellStyleChangedEventArgs.cs
- DescendantBaseQuery.cs
- ThumbAutomationPeer.cs
- ResourceDictionary.cs
- WebPartDisplayModeCancelEventArgs.cs
- XamlPoint3DCollectionSerializer.cs
- TriState.cs
- XmlDictionaryReader.cs
- ErrorFormatterPage.cs
- BasicViewGenerator.cs
- SecurityManager.cs
- DataBindingHandlerAttribute.cs
- ConnectionProviderAttribute.cs
- CacheDependency.cs
- IntSecurity.cs
- DocumentApplicationJournalEntry.cs
- SqlVisitor.cs
- X509SecurityTokenAuthenticator.cs
- RtfToXamlReader.cs
- EntityCollection.cs
- BamlStream.cs
- Sorting.cs
- UnsafeNativeMethodsMilCoreApi.cs
- PropertyDescriptorGridEntry.cs
- ListBoxItemWrapperAutomationPeer.cs
- TimeSpanSecondsConverter.cs
- FixedSOMTableRow.cs
- HttpPostedFile.cs
- SimpleBitVector32.cs
- DbParameterCollection.cs
- PropertyChangeTracker.cs
- XmlSchemaCollection.cs
- PreviewKeyDownEventArgs.cs
- ConfigXmlDocument.cs
- AuthenticatedStream.cs