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
- CacheVirtualItemsEvent.cs
- Profiler.cs
- TableSectionStyle.cs
- Process.cs
- ContourSegment.cs
- DoubleCollectionConverter.cs
- followingsibling.cs
- DataKey.cs
- SubMenuStyle.cs
- JavaScriptString.cs
- CategoryGridEntry.cs
- CacheSection.cs
- LookupTables.cs
- DbMetaDataColumnNames.cs
- ArrangedElement.cs
- GridEntryCollection.cs
- SingleBodyParameterMessageFormatter.cs
- SuppressIldasmAttribute.cs
- TraceContext.cs
- DesignerDataParameter.cs
- CachedFontFamily.cs
- DependsOnAttribute.cs
- MultiPageTextView.cs
- SafeHandles.cs
- FamilyTypefaceCollection.cs
- EditingMode.cs
- SafeFileMappingHandle.cs
- ClientData.cs
- LoadMessageLogger.cs
- ExpandoObject.cs
- TransformerConfigurationWizardBase.cs
- Label.cs
- DbDataReader.cs
- Page.cs
- ReadWriteControlDesigner.cs
- Debug.cs
- DecoderReplacementFallback.cs
- Geometry3D.cs
- SafeFileMappingHandle.cs
- SecurityDescriptor.cs
- ResumeStoryboard.cs
- GatewayIPAddressInformationCollection.cs
- UpdatePanelControlTrigger.cs
- TrustLevelCollection.cs
- ItemCollection.cs
- regiisutil.cs
- GroupBoxRenderer.cs
- StringFreezingAttribute.cs
- ReflectionHelper.cs
- UrlPropertyAttribute.cs
- ObjectComplexPropertyMapping.cs
- Annotation.cs
- SqlStream.cs
- Screen.cs
- ModifiableIteratorCollection.cs
- ArcSegment.cs
- PerformanceCounterLib.cs
- NativeStructs.cs
- ObjectHandle.cs
- Rect.cs
- ByteStreamGeometryContext.cs
- SimpleTextLine.cs
- DiscardableAttribute.cs
- ExpanderAutomationPeer.cs
- AssemblyUtil.cs
- ResourceAssociationTypeEnd.cs
- LazyInitializer.cs
- DataListComponentEditor.cs
- TriggerCollection.cs
- BindingNavigator.cs
- XamlInterfaces.cs
- DrawListViewColumnHeaderEventArgs.cs
- NotFiniteNumberException.cs
- CodeDOMProvider.cs
- XmlDictionaryReader.cs
- JapaneseLunisolarCalendar.cs
- Baml6ConstructorInfo.cs
- AttachedPropertyInfo.cs
- AssertHelper.cs
- CompModSwitches.cs
- EncodingInfo.cs
- CharKeyFrameCollection.cs
- FormViewModeEventArgs.cs
- InputReport.cs
- MembershipSection.cs
- AssociationSetMetadata.cs
- XmlSchemaComplexContent.cs
- RangeValidator.cs
- IncrementalCompileAnalyzer.cs
- MiniConstructorInfo.cs
- MemberBinding.cs
- DbParameterCollectionHelper.cs
- FlowPanelDesigner.cs
- OracleParameterCollection.cs
- dataprotectionpermissionattribute.cs
- AppDomainAttributes.cs
- DataGridViewTextBoxColumn.cs
- StringSorter.cs
- StreamProxy.cs
- KoreanCalendar.cs