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
- ComplexPropertyEntry.cs
- RijndaelManaged.cs
- LinqDataSourceContextEventArgs.cs
- ValidationResult.cs
- DataStorage.cs
- DelayedRegex.cs
- RoutedEventArgs.cs
- HostingEnvironmentSection.cs
- StorageEntitySetMapping.cs
- ToolStripSeparatorRenderEventArgs.cs
- TextBoxView.cs
- PropertyEntry.cs
- CapiSafeHandles.cs
- ListViewItem.cs
- FilterQueryOptionExpression.cs
- ProgramNode.cs
- LoopExpression.cs
- WindowsFormsHostPropertyMap.cs
- InvalidPrinterException.cs
- CallbackHandler.cs
- ValueUnavailableException.cs
- ClientEventManager.cs
- DataPointer.cs
- XamlFrame.cs
- CounterNameConverter.cs
- XmlSchemaGroup.cs
- MgmtResManager.cs
- LongValidator.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- Compress.cs
- XmlSchemaSet.cs
- DESCryptoServiceProvider.cs
- NonSerializedAttribute.cs
- CodeTypeMemberCollection.cs
- SendMailErrorEventArgs.cs
- DictionaryBase.cs
- UICuesEvent.cs
- FusionWrap.cs
- ObjectSecurityT.cs
- PropertyMappingExceptionEventArgs.cs
- OracleBinary.cs
- ResourceReferenceExpressionConverter.cs
- ListViewDeleteEventArgs.cs
- Int32.cs
- ExtenderProvidedPropertyAttribute.cs
- EncryptedType.cs
- FloaterParagraph.cs
- XmlSchemaSimpleContentRestriction.cs
- StringConverter.cs
- AdCreatedEventArgs.cs
- OdbcCommand.cs
- SerializationSectionGroup.cs
- XmlQualifiedName.cs
- HttpCookie.cs
- TrackingProfileSerializer.cs
- BaseDataList.cs
- PropertiesTab.cs
- SystemWebCachingSectionGroup.cs
- Variant.cs
- LayoutEngine.cs
- PeerNameRecordCollection.cs
- StateMachineWorkflowDesigner.cs
- HtmlEmptyTagControlBuilder.cs
- IndependentlyAnimatedPropertyMetadata.cs
- SqlDataSourceStatusEventArgs.cs
- ZipFileInfoCollection.cs
- XmlTextWriter.cs
- Utility.cs
- XsltConvert.cs
- HostingEnvironment.cs
- DelegatingConfigHost.cs
- UpdatePanel.cs
- BitmapScalingModeValidation.cs
- WizardPanel.cs
- Stack.cs
- Propagator.Evaluator.cs
- TraceSection.cs
- _PooledStream.cs
- SoapParser.cs
- XmlSchemaIdentityConstraint.cs
- DataPagerCommandEventArgs.cs
- TextLine.cs
- CanonicalizationDriver.cs
- StylusDevice.cs
- FormsAuthenticationTicket.cs
- DomainUpDown.cs
- ProtectedConfigurationSection.cs
- ReflectionHelper.cs
- login.cs
- X509SecurityTokenAuthenticator.cs
- DecimalAverageAggregationOperator.cs
- HwndSourceParameters.cs
- StorageMappingFragment.cs
- VectorValueSerializer.cs
- FormViewAutoFormat.cs
- XmlReflectionImporter.cs
- MsmqIntegrationProcessProtocolHandler.cs
- CheckedPointers.cs
- RadioButton.cs
- QilInvoke.cs