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
- xml.cs
- TextContainer.cs
- DocumentStream.cs
- WebPartEditorApplyVerb.cs
- OlePropertyStructs.cs
- EventArgs.cs
- GeometryHitTestParameters.cs
- DebugView.cs
- XmlWrappingReader.cs
- StateWorkerRequest.cs
- HttpBindingExtension.cs
- ToggleProviderWrapper.cs
- SequentialWorkflowRootDesigner.cs
- Floater.cs
- PrintDialogException.cs
- Compiler.cs
- UpnEndpointIdentity.cs
- TimeZone.cs
- ClientSession.cs
- IRCollection.cs
- StylusPlugin.cs
- ObjectViewListener.cs
- ExpressionPrefixAttribute.cs
- RadioButtonPopupAdapter.cs
- CacheDependency.cs
- WsatRegistrationHeader.cs
- HttpListener.cs
- DataBindEngine.cs
- PlaceHolder.cs
- Crc32Helper.cs
- SetUserLanguageRequest.cs
- RegexCompilationInfo.cs
- configsystem.cs
- BamlCollectionHolder.cs
- Timer.cs
- ObjectToIdCache.cs
- ProfilePropertySettings.cs
- WebSysDescriptionAttribute.cs
- login.cs
- Vector.cs
- ElementAction.cs
- CodeDOMUtility.cs
- Evaluator.cs
- RuleSettings.cs
- TextProviderWrapper.cs
- FacetChecker.cs
- DataChangedEventManager.cs
- basecomparevalidator.cs
- BamlWriter.cs
- Ray3DHitTestResult.cs
- Codec.cs
- XmlNamespaceMappingCollection.cs
- FocusManager.cs
- CodeEventReferenceExpression.cs
- ResXBuildProvider.cs
- ImageCodecInfo.cs
- XmlChildEnumerator.cs
- Configuration.cs
- PDBReader.cs
- DataGridViewElement.cs
- ZipPackagePart.cs
- Message.cs
- NullEntityWrapper.cs
- DependencyPropertyConverter.cs
- Keywords.cs
- SiteOfOriginPart.cs
- UmAlQuraCalendar.cs
- BitSet.cs
- ServiceMemoryGates.cs
- EncoderExceptionFallback.cs
- CodeDomLocalizationProvider.cs
- MenuRendererClassic.cs
- TcpTransportManager.cs
- WindowsImpersonationContext.cs
- CssStyleCollection.cs
- DesignerVerbCollection.cs
- ProxyWebPart.cs
- RadioButtonStandardAdapter.cs
- ConstantSlot.cs
- ToolStripControlHost.cs
- ResolvedKeyFrameEntry.cs
- AudioLevelUpdatedEventArgs.cs
- IdentifierService.cs
- WebBrowserProgressChangedEventHandler.cs
- FixedSOMTableRow.cs
- GenericAuthenticationEventArgs.cs
- SecUtil.cs
- TreeNodeConverter.cs
- dataSvcMapFileLoader.cs
- ResourceReferenceExpression.cs
- Rotation3D.cs
- DataGridViewToolTip.cs
- ResourceCategoryAttribute.cs
- SqlXmlStorage.cs
- InternalEnumValidatorAttribute.cs
- DataServiceRequestException.cs
- RuleSetDialog.cs
- XPathNavigatorReader.cs
- ServiceContractViewControl.cs
- ViewStateModeByIdAttribute.cs