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
- UnSafeCharBuffer.cs
- FileIOPermission.cs
- Binding.cs
- ClientSession.cs
- ServiceDesigner.xaml.cs
- CompositeTypefaceMetrics.cs
- XmlSiteMapProvider.cs
- ResourceIDHelper.cs
- XmlPreloadedResolver.cs
- TextRunTypographyProperties.cs
- SrgsRuleRef.cs
- FloaterBaseParagraph.cs
- InputReferenceExpression.cs
- ValidationError.cs
- SafeHandle.cs
- Comparer.cs
- SyndicationSerializer.cs
- AbstractSvcMapFileLoader.cs
- MsmqAppDomainProtocolHandler.cs
- OTFRasterizer.cs
- XamlStream.cs
- DesignerTextViewAdapter.cs
- DataGridViewColumnDesigner.cs
- PocoEntityKeyStrategy.cs
- RoleManagerEventArgs.cs
- ProcessModuleDesigner.cs
- BindingSource.cs
- XPathEmptyIterator.cs
- DataRow.cs
- ClientTarget.cs
- DataKeyCollection.cs
- HealthMonitoringSection.cs
- GridViewColumnCollection.cs
- RuleRef.cs
- DefaultEvaluationContext.cs
- BamlResourceSerializer.cs
- SplayTreeNode.cs
- _ProxyChain.cs
- TextTreeRootNode.cs
- ExpressionHelper.cs
- QualificationDataAttribute.cs
- ServicePointManagerElement.cs
- FrameworkContextData.cs
- XslAst.cs
- HashRepartitionEnumerator.cs
- CharacterBufferReference.cs
- CapiNative.cs
- coordinator.cs
- SmiGettersStream.cs
- TypeInfo.cs
- DocumentViewerBaseAutomationPeer.cs
- ComplexTypeEmitter.cs
- PasswordBoxAutomationPeer.cs
- AnnotationDocumentPaginator.cs
- WorkflowMarkupSerializationProvider.cs
- ButtonFieldBase.cs
- QilFactory.cs
- DbDeleteCommandTree.cs
- IItemContainerGenerator.cs
- ToolStripArrowRenderEventArgs.cs
- CompletedAsyncResult.cs
- Geometry3D.cs
- MarkupWriter.cs
- TextAction.cs
- MetadataArtifactLoaderResource.cs
- ChangeDirector.cs
- TreeNodeBinding.cs
- DefinitionUpdate.cs
- DataGridClipboardCellContent.cs
- OutOfMemoryException.cs
- DataGridHeaderBorder.cs
- FixedSOMSemanticBox.cs
- OleDbCommandBuilder.cs
- Int64KeyFrameCollection.cs
- Normalization.cs
- WebScriptEndpointElement.cs
- DynamicValueConverter.cs
- ToolTip.cs
- ComPlusDiagnosticTraceSchemas.cs
- GridViewRowPresenter.cs
- HttpDictionary.cs
- XamlPointCollectionSerializer.cs
- Cell.cs
- PointCollection.cs
- ColumnBinding.cs
- SQLBinary.cs
- XmlIgnoreAttribute.cs
- localization.cs
- AttributeCollection.cs
- ConfigurationPropertyCollection.cs
- ListViewGroupConverter.cs
- Funcletizer.cs
- SettingsPropertyWrongTypeException.cs
- ImageCodecInfoPrivate.cs
- SqlCaseSimplifier.cs
- PeerCollaboration.cs
- ControlEvent.cs
- Compilation.cs
- FactoryMaker.cs
- EmptyStringExpandableObjectConverter.cs