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
- XmlFormatExtensionAttribute.cs
- DescendantQuery.cs
- DbConnectionPoolOptions.cs
- DbConnectionPool.cs
- DoubleCollection.cs
- WorkflowWebHostingModule.cs
- NullableIntMinMaxAggregationOperator.cs
- DesignerActionTextItem.cs
- WinOEToolBoxItem.cs
- HebrewCalendar.cs
- OracleRowUpdatedEventArgs.cs
- DataSetMappper.cs
- NullReferenceException.cs
- CodeTypeReference.cs
- DbParameterHelper.cs
- SerialErrors.cs
- Delay.cs
- TextCompositionManager.cs
- RegexGroup.cs
- ThreadAbortException.cs
- WebServiceMethodData.cs
- DateTimeOffset.cs
- MouseBinding.cs
- EventDescriptor.cs
- DescendantOverDescendantQuery.cs
- RequestTimeoutManager.cs
- HttpProfileBase.cs
- ObjectDataSourceSelectingEventArgs.cs
- WebControlToolBoxItem.cs
- DataSysAttribute.cs
- MenuItemCollectionEditorDialog.cs
- ErrorTableItemStyle.cs
- DataGridPageChangedEventArgs.cs
- ToolStripComboBox.cs
- TableLayoutPanelBehavior.cs
- ItemContainerProviderWrapper.cs
- DataGridCommandEventArgs.cs
- LoginCancelEventArgs.cs
- UnicodeEncoding.cs
- UpdatePanelTriggerCollection.cs
- WmlFormAdapter.cs
- HttpListener.cs
- WebServiceTypeData.cs
- MemoryFailPoint.cs
- GACMembershipCondition.cs
- MailAddressParser.cs
- CommandDevice.cs
- ReadOnlyDataSourceView.cs
- HideDisabledControlAdapter.cs
- BrowserCapabilitiesCompiler.cs
- ReferencedAssembly.cs
- ServiceDescriptionSerializer.cs
- PriorityRange.cs
- mediaeventargs.cs
- RuntimeConfig.cs
- MasterPageBuildProvider.cs
- XmlComment.cs
- ObjectStateEntry.cs
- HtmlTableCellCollection.cs
- UnmanagedHandle.cs
- ToolStripStatusLabel.cs
- HtmlGenericControl.cs
- CustomValidator.cs
- ProfileGroupSettings.cs
- WebPartTransformer.cs
- FragmentQueryKB.cs
- CodeGeneratorOptions.cs
- SynchronousChannelMergeEnumerator.cs
- PolygonHotSpot.cs
- DocumentViewerHelper.cs
- NotImplementedException.cs
- BitVector32.cs
- SqlDependency.cs
- StopRoutingHandler.cs
- TdsParameterSetter.cs
- PeerApplicationLaunchInfo.cs
- TraceHwndHost.cs
- PolyLineSegment.cs
- AtomServiceDocumentSerializer.cs
- ApplicationActivator.cs
- ZipIOBlockManager.cs
- ChildTable.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ParentQuery.cs
- TypeConverterMarkupExtension.cs
- SchemaReference.cs
- EntityWrapper.cs
- RuntimeUtils.cs
- XPathScanner.cs
- GeometryCombineModeValidation.cs
- LateBoundBitmapDecoder.cs
- SmiRequestExecutor.cs
- RuntimeConfigurationRecord.cs
- StorageConditionPropertyMapping.cs
- ThemeableAttribute.cs
- DbParameterCollection.cs
- COM2FontConverter.cs
- PageOutputColor.cs
- ManipulationPivot.cs
- DataGridViewRowPrePaintEventArgs.cs