Code:
/ 4.0 / 4.0 / 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. 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
- BeginEvent.cs
- Msec.cs
- DataPagerFieldCollection.cs
- GridViewRowEventArgs.cs
- Literal.cs
- TabControlAutomationPeer.cs
- FormViewUpdatedEventArgs.cs
- TemplateBamlRecordReader.cs
- VersionConverter.cs
- QilIterator.cs
- HyperLinkDataBindingHandler.cs
- UriExt.cs
- XComponentModel.cs
- FileDialog.cs
- DataControlReferenceCollection.cs
- GeneralTransform2DTo3D.cs
- AssemblyAttributes.cs
- Popup.cs
- UndoEngine.cs
- WindowsSpinner.cs
- BinaryMethodMessage.cs
- OraclePermission.cs
- RecordManager.cs
- MetadataUtilsSmi.cs
- ADMembershipProvider.cs
- Parser.cs
- Throw.cs
- Debug.cs
- parserscommon.cs
- RtfControls.cs
- PersistenceException.cs
- Padding.cs
- Ops.cs
- WaitHandleCannotBeOpenedException.cs
- HtmlElement.cs
- SQLBinary.cs
- HtmlTernaryTree.cs
- DBSqlParserColumnCollection.cs
- XmlLanguage.cs
- PropertyGeneratedEventArgs.cs
- NativeMethodsOther.cs
- OleAutBinder.cs
- CompositeClientFormatter.cs
- MailMessageEventArgs.cs
- ExtenderProvidedPropertyAttribute.cs
- TypeKeyValue.cs
- SmtpReplyReader.cs
- HuffmanTree.cs
- MarshalByValueComponent.cs
- RuntimeConfigurationRecord.cs
- StrokeCollection.cs
- basevalidator.cs
- coordinatorscratchpad.cs
- InfoCardSymmetricAlgorithm.cs
- MetadataItem_Static.cs
- DbExpressionVisitor.cs
- TCPListener.cs
- FlatButtonAppearance.cs
- EmissiveMaterial.cs
- Animatable.cs
- WebPartZone.cs
- StatusBarItem.cs
- PasswordRecovery.cs
- sqlpipe.cs
- SelectionWordBreaker.cs
- XmlAggregates.cs
- Error.cs
- Group.cs
- Gdiplus.cs
- ValidatingReaderNodeData.cs
- CompensatableTransactionScopeActivity.cs
- GetMemberBinder.cs
- SqlReferenceCollection.cs
- ParameterModifier.cs
- ImageFormat.cs
- DTCTransactionManager.cs
- XDRSchema.cs
- UnsafeNativeMethods.cs
- PrintingPermissionAttribute.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- BooleanConverter.cs
- webeventbuffer.cs
- Binding.cs
- DecimalAnimationBase.cs
- BitmapEffectGeneralTransform.cs
- AppSettingsReader.cs
- SafeRightsManagementSessionHandle.cs
- LeafCellTreeNode.cs
- MetadataSource.cs
- HandlerFactoryWrapper.cs
- CheckBoxField.cs
- FilteredReadOnlyMetadataCollection.cs
- ListItem.cs
- InputScopeAttribute.cs
- VolatileEnlistmentState.cs
- NativeObjectSecurity.cs
- SqlMethods.cs
- Conditional.cs
- ReadOnlyCollectionBuilder.cs
- CollectionTypeElement.cs