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
- TaskFileService.cs
- ProviderIncompatibleException.cs
- HMACRIPEMD160.cs
- ItemsPanelTemplate.cs
- KeyFrames.cs
- HtmlForm.cs
- MappingException.cs
- TypedTableBase.cs
- TextProperties.cs
- Authorization.cs
- CapabilitiesSection.cs
- DecimalAnimation.cs
- HMACMD5.cs
- WebBrowserNavigatingEventHandler.cs
- Form.cs
- OdbcErrorCollection.cs
- TableColumnCollectionInternal.cs
- RenderOptions.cs
- RuntimeHelpers.cs
- EntityDataSourceContextCreatingEventArgs.cs
- XPathDocumentNavigator.cs
- WebPartDisplayMode.cs
- WmlLiteralTextAdapter.cs
- RefreshEventArgs.cs
- CompilerLocalReference.cs
- AddressHeaderCollection.cs
- MobileTextWriter.cs
- RegexBoyerMoore.cs
- NullableBoolConverter.cs
- embossbitmapeffect.cs
- SQLResource.cs
- FixedTextBuilder.cs
- MetadataArtifactLoaderCompositeFile.cs
- FtpWebRequest.cs
- WindowsListBox.cs
- TransformPattern.cs
- IndexExpression.cs
- XmlPropertyBag.cs
- PrintEvent.cs
- XmlnsDictionary.cs
- DbConnectionPoolGroupProviderInfo.cs
- QilLiteral.cs
- UrlPath.cs
- FileCodeGroup.cs
- OleDbConnectionFactory.cs
- CheckedPointers.cs
- Viewport2DVisual3D.cs
- PhysicalAddress.cs
- CodeSubDirectory.cs
- EmptyTextWriter.cs
- HostingEnvironmentSection.cs
- GridViewRowPresenterBase.cs
- ContainerControl.cs
- ProgressBar.cs
- Int32RectConverter.cs
- Int64.cs
- CssTextWriter.cs
- AccessDataSourceView.cs
- EndpointFilterProvider.cs
- TableParaClient.cs
- ReflectionUtil.cs
- EditBehavior.cs
- DebuggerAttributes.cs
- DetailsViewRowCollection.cs
- BuilderElements.cs
- DataGridViewAdvancedBorderStyle.cs
- HMACSHA384.cs
- AutoResetEvent.cs
- Trigger.cs
- Literal.cs
- UndirectedGraph.cs
- MouseEvent.cs
- AdapterUtil.cs
- EnumBuilder.cs
- SafeMILHandle.cs
- LocalFileSettingsProvider.cs
- WebPartMinimizeVerb.cs
- KnownTypeDataContractResolver.cs
- SchemaSetCompiler.cs
- BackgroundFormatInfo.cs
- PropertyEmitter.cs
- XmlSchemaExternal.cs
- LinkLabelLinkClickedEvent.cs
- EntityKey.cs
- Domain.cs
- ChangePasswordAutoFormat.cs
- HandlerWithFactory.cs
- AuthenticationModuleElementCollection.cs
- TcpSocketManager.cs
- recordstate.cs
- RuntimeHandles.cs
- MultipleViewPatternIdentifiers.cs
- ContentPresenter.cs
- ClusterUtils.cs
- WindowsListViewGroup.cs
- EtwTrace.cs
- ArithmeticLiteral.cs
- SortedSet.cs
- MethodRental.cs
- ToolbarAUtomationPeer.cs