Code:
/ 4.0 / 4.0 / 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. 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
- ModuleElement.cs
- ObjectSecurityT.cs
- DbProviderServices.cs
- SystemBrushes.cs
- ParenthesizePropertyNameAttribute.cs
- PagedDataSource.cs
- WsdlInspector.cs
- TextServicesPropertyRanges.cs
- MenuEventArgs.cs
- MediaContext.cs
- Part.cs
- XmlSchemaObjectTable.cs
- DatatypeImplementation.cs
- StringHandle.cs
- FamilyMap.cs
- TableRowsCollectionEditor.cs
- ResourceDefaultValueAttribute.cs
- ExponentialEase.cs
- Substitution.cs
- DbConnectionStringCommon.cs
- QuestionEventArgs.cs
- GC.cs
- PolicyUtility.cs
- ByteAnimationBase.cs
- MatrixIndependentAnimationStorage.cs
- CodeTypeReferenceCollection.cs
- DataGridViewToolTip.cs
- ReaderContextStackData.cs
- Rijndael.cs
- CodeAttributeDeclaration.cs
- TagNameToTypeMapper.cs
- TreeNodeStyleCollection.cs
- WebConfigurationManager.cs
- HttpStreamMessageEncoderFactory.cs
- EdmSchemaError.cs
- MessagePartProtectionMode.cs
- contentDescriptor.cs
- ObjectDataProvider.cs
- SourceChangedEventArgs.cs
- Rijndael.cs
- VoiceInfo.cs
- MgmtResManager.cs
- GridViewActionList.cs
- PropertyBuilder.cs
- GetRecipientRequest.cs
- ToolStripPanelCell.cs
- InvariantComparer.cs
- DataGridViewSelectedColumnCollection.cs
- _SslState.cs
- TreeNodeSelectionProcessor.cs
- InputReportEventArgs.cs
- TreeNodeConverter.cs
- ListComponentEditorPage.cs
- NotifyParentPropertyAttribute.cs
- SqlWebEventProvider.cs
- ReturnEventArgs.cs
- Delegate.cs
- SyntaxCheck.cs
- AnimatedTypeHelpers.cs
- InstalledVoice.cs
- PrePrepareMethodAttribute.cs
- translator.cs
- OutKeywords.cs
- StateMachineSubscription.cs
- WindowsTreeView.cs
- DropAnimation.xaml.cs
- XmlExpressionDumper.cs
- XmlSchemaObjectCollection.cs
- ManagementDateTime.cs
- VirtualDirectoryMappingCollection.cs
- BidOverLoads.cs
- DataGridViewEditingControlShowingEventArgs.cs
- FunctionMappingTranslator.cs
- AuthenticationConfig.cs
- DrawingAttributeSerializer.cs
- DataGridViewAccessibleObject.cs
- FontInfo.cs
- CategoryAttribute.cs
- IListConverters.cs
- NavigationProgressEventArgs.cs
- EnumType.cs
- SAPICategories.cs
- SoapTypeAttribute.cs
- ListViewContainer.cs
- AttributeInfo.cs
- PathSegment.cs
- Page.cs
- ReadWriteSpinLock.cs
- ArithmeticException.cs
- AccessorTable.cs
- ListViewGroupConverter.cs
- CatalogPartCollection.cs
- WebScriptEnablingElement.cs
- Point3D.cs
- EmbeddedMailObject.cs
- Size3D.cs
- HttpHandlerActionCollection.cs
- HtmlProps.cs
- RelativeSource.cs
- TabControlDesigner.cs