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
- ZipIOExtraFieldZip64Element.cs
- ScrollBar.cs
- NavigationWindowAutomationPeer.cs
- IdnMapping.cs
- BindingContext.cs
- DesignerCommandSet.cs
- FilteredDataSetHelper.cs
- ScrollBar.cs
- RegistryDataKey.cs
- PackageRelationship.cs
- Operators.cs
- AppearanceEditorPart.cs
- FontStretches.cs
- FormattedTextSymbols.cs
- PerformanceCounterManager.cs
- XmlDocumentFragment.cs
- CodeDirectoryCompiler.cs
- TouchFrameEventArgs.cs
- AnnotationAdorner.cs
- XmlSchemaSequence.cs
- DefaultPrintController.cs
- AttributeData.cs
- TypedElement.cs
- GeneralTransform3DGroup.cs
- ThreadLocal.cs
- StoreConnection.cs
- filewebrequest.cs
- AddInAttribute.cs
- StorageEntityContainerMapping.cs
- CatalogZone.cs
- SqlDataSourceCustomCommandPanel.cs
- QilCloneVisitor.cs
- DataGridViewAccessibleObject.cs
- WebReferencesBuildProvider.cs
- CultureMapper.cs
- ToolStripScrollButton.cs
- RightsManagementEncryptedStream.cs
- ObjectViewQueryResultData.cs
- KnowledgeBase.cs
- MenuItem.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- ThreadExceptionDialog.cs
- SetStoryboardSpeedRatio.cs
- ByteStream.cs
- ClickablePoint.cs
- ButtonField.cs
- shaperfactory.cs
- InitializerFacet.cs
- LineGeometry.cs
- dataSvcMapFileLoader.cs
- DataGridLinkButton.cs
- CircleEase.cs
- BitmapSizeOptions.cs
- MarkupObject.cs
- BooleanStorage.cs
- ConfigXmlDocument.cs
- ServiceNameElement.cs
- WindowPattern.cs
- GridViewSelectEventArgs.cs
- ToolStripMenuItemDesigner.cs
- HtmlInputCheckBox.cs
- XamlGridLengthSerializer.cs
- CanonicalXml.cs
- ContentType.cs
- SetterBase.cs
- clipboard.cs
- OperandQuery.cs
- DataBindEngine.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- SqlDeflator.cs
- MetadataArtifactLoaderCompositeFile.cs
- ComplexPropertyEntry.cs
- Enumerable.cs
- PenThreadPool.cs
- TraceContextEventArgs.cs
- LineServicesRun.cs
- SqlUserDefinedTypeAttribute.cs
- WindowsGraphicsCacheManager.cs
- GridEntryCollection.cs
- AppDomainFactory.cs
- PauseStoryboard.cs
- ClientRuntimeConfig.cs
- BitmapEffectOutputConnector.cs
- FormatException.cs
- PerformanceCounterLib.cs
- SBCSCodePageEncoding.cs
- SystemIcons.cs
- DataViewManagerListItemTypeDescriptor.cs
- BooleanSwitch.cs
- EventListener.cs
- PeerHelpers.cs
- BitSet.cs
- sqlnorm.cs
- LineBreakRecord.cs
- BindingOperations.cs
- ToolStripDropTargetManager.cs
- AncestorChangedEventArgs.cs
- UInt16.cs
- ADMembershipProvider.cs
- WorkflowInstanceQuery.cs