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
- XmlnsPrefixAttribute.cs
- SqlRecordBuffer.cs
- PersistenceTypeAttribute.cs
- TablePatternIdentifiers.cs
- ProfileParameter.cs
- FocusChangedEventArgs.cs
- XPathSingletonIterator.cs
- AncestorChangedEventArgs.cs
- ObjectTypeMapping.cs
- UserControl.cs
- InitializingNewItemEventArgs.cs
- ToolBarPanel.cs
- XsdBuildProvider.cs
- ContainerSelectorGlyph.cs
- ToolStripSplitButton.cs
- VScrollProperties.cs
- CacheOutputQuery.cs
- LinkClickEvent.cs
- ValuePatternIdentifiers.cs
- LassoHelper.cs
- DataControlField.cs
- StringValueSerializer.cs
- MaskedTextBoxTextEditor.cs
- ASCIIEncoding.cs
- ThicknessAnimationBase.cs
- QilBinary.cs
- PropertyChangeTracker.cs
- XmlQueryRuntime.cs
- WebControlAdapter.cs
- FtpCachePolicyElement.cs
- ImageIndexConverter.cs
- PinnedBufferMemoryStream.cs
- EntityDataSourceStatementEditorForm.cs
- SqlPersonalizationProvider.cs
- RecordManager.cs
- SessionStateUtil.cs
- HtmlTextArea.cs
- MouseEventArgs.cs
- NamedPipeWorkerProcess.cs
- DetailsViewInsertedEventArgs.cs
- TdsParserSafeHandles.cs
- StrokeCollection2.cs
- ListViewGroup.cs
- ServiceMemoryGates.cs
- MissingMethodException.cs
- PageFunction.cs
- DefaultBinder.cs
- ReadOnlyTernaryTree.cs
- EntityDataSourceWrapperCollection.cs
- ResourceDisplayNameAttribute.cs
- EventManager.cs
- PersonalizationEntry.cs
- NavigationProgressEventArgs.cs
- ellipse.cs
- DataFieldEditor.cs
- TableLayoutCellPaintEventArgs.cs
- ObjectAnimationBase.cs
- SafeNativeMethodsOther.cs
- DrawToolTipEventArgs.cs
- EntityProviderFactory.cs
- XmlArrayItemAttribute.cs
- WindowsRebar.cs
- EmptyStringExpandableObjectConverter.cs
- SymLanguageType.cs
- CompatibleComparer.cs
- ValidationEventArgs.cs
- PropertyInfoSet.cs
- SHA1.cs
- HtmlTableRowCollection.cs
- Accessors.cs
- CompositeControlDesigner.cs
- MdImport.cs
- AsymmetricKeyExchangeFormatter.cs
- TypeToken.cs
- TableItemStyle.cs
- TextPenaltyModule.cs
- SettingsAttributeDictionary.cs
- TextRangeSerialization.cs
- SaveRecipientRequest.cs
- PersonalizationAdministration.cs
- DropShadowBitmapEffect.cs
- TabletCollection.cs
- LinqDataSource.cs
- HtmlForm.cs
- SelectionEditingBehavior.cs
- SerialReceived.cs
- ResXBuildProvider.cs
- FixedDocument.cs
- TimersDescriptionAttribute.cs
- WebPartTracker.cs
- CheckBox.cs
- XPathConvert.cs
- InternalTypeHelper.cs
- UshortList2.cs
- ReturnEventArgs.cs
- TextSerializer.cs
- sqlstateclientmanager.cs
- TypeDependencyAttribute.cs
- Pen.cs
- ChtmlMobileTextWriter.cs