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
- _ConnectStream.cs
- AssemblyNameProxy.cs
- Byte.cs
- PointValueSerializer.cs
- DataColumn.cs
- WmlLiteralTextAdapter.cs
- RawStylusInputReport.cs
- ChoiceConverter.cs
- EmulateRecognizeCompletedEventArgs.cs
- Panel.cs
- TaiwanCalendar.cs
- BaseResourcesBuildProvider.cs
- BindingSource.cs
- OdbcStatementHandle.cs
- ExceptionHandler.cs
- VersionConverter.cs
- SiteMap.cs
- BaseCollection.cs
- DoubleLinkList.cs
- ValidationRuleCollection.cs
- QilExpression.cs
- SymLanguageType.cs
- BinaryUtilClasses.cs
- SourceLineInfo.cs
- CodeDirectiveCollection.cs
- EllipseGeometry.cs
- AssemblyHelper.cs
- ToolboxItemAttribute.cs
- GrammarBuilderDictation.cs
- LayoutSettings.cs
- UrlPropertyAttribute.cs
- UniqueConstraint.cs
- ControlPersister.cs
- ViewKeyConstraint.cs
- Speller.cs
- Rules.cs
- User.cs
- QueryContinueDragEventArgs.cs
- WebPartDisplayModeCollection.cs
- SettingsPropertyCollection.cs
- XmlException.cs
- HotCommands.cs
- TextBlock.cs
- HttpBindingExtension.cs
- Timeline.cs
- BreakRecordTable.cs
- RadioButtonList.cs
- CharUnicodeInfo.cs
- WebPartUtil.cs
- XmlSchemaRedefine.cs
- DataMember.cs
- DesignerProperties.cs
- RepeaterCommandEventArgs.cs
- HMACMD5.cs
- EdmProperty.cs
- WorkflowDesigner.cs
- ValueExpressions.cs
- ThemeDirectoryCompiler.cs
- RijndaelManaged.cs
- DoubleCollection.cs
- PrintDocument.cs
- ISO2022Encoding.cs
- WhitespaceRule.cs
- prompt.cs
- EditingScope.cs
- HttpListener.cs
- SecurityContextTokenValidationException.cs
- SatelliteContractVersionAttribute.cs
- Completion.cs
- DetailsViewInsertedEventArgs.cs
- HuffCodec.cs
- smtppermission.cs
- EventItfInfo.cs
- IpcChannelHelper.cs
- DivideByZeroException.cs
- SoundPlayerAction.cs
- remotingproxy.cs
- ImageField.cs
- DescendantQuery.cs
- AttributeData.cs
- Encoder.cs
- ChannelManager.cs
- BindableTemplateBuilder.cs
- RemotingServices.cs
- SqlRecordBuffer.cs
- PackWebRequestFactory.cs
- X509CertificateCollection.cs
- DefaultExpressionVisitor.cs
- BufferedGraphicsContext.cs
- DataServiceException.cs
- EUCJPEncoding.cs
- ComboBoxRenderer.cs
- DbConnectionPoolIdentity.cs
- PathGradientBrush.cs
- PackageRelationshipCollection.cs
- OdbcCommand.cs
- DataPagerFieldCommandEventArgs.cs
- IsolatedStorageException.cs
- SqlNamer.cs
- EntityReference.cs