Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / DynamicFilter.cs / 1305376 / DynamicFilter.cs
using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Web.Compilation; using System.Web.UI; using System.Web.UI.WebControls; #if !ORYX_VNEXT using System.Web.UI.WebControls.Expressions; using System.Web.Resources; #else using Microsoft.Web.Data.UI.WebControls.Expressions; using Microsoft.Web.Data.UI.WebControls; #endif namespace System.Web.DynamicData { public class DynamicFilter : Control, IFilterExpressionProvider { private HttpContextBase _context; private IQueryableDataSource _dataSource; private Func_filterLoader; private QueryableFilterUserControl _filterUserControl; protected internal MetaColumn Column { get; private set; } /// /// The name of the column that this control handles /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicFilter_DataField") ] public string DataField { get { object o = ViewState["DataField"]; return (o == null) ? String.Empty : (string)o; } set { ViewState["DataField"] = value; } } ////// An optional property that can be used to override the column's default default filter UI hint. /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicFilter_FilterUIHint") ] public string FilterUIHint { get { object o = ViewState["FilterUIHint"]; return (o == null) ? String.Empty : (string)o; } set { ViewState["FilterUIHint"] = value; } } public DynamicFilter() : this(CreateUserControl) { } // internal for unit testing internal DynamicFilter(FuncfilterLoader) { _filterLoader = filterLoader; } // internal for unit testing internal static QueryableFilterUserControl CreateUserControl(MetaColumn column, string filterUiHint) { return column.Model.FilterFactory.CreateFilterControl(column, filterUiHint); } internal new HttpContextBase Context { get { return _context ?? new HttpContextWrapper(HttpContext.Current); } set { _context = value; } } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public event EventHandler FilterChanged; /// /// Returns the filter template that was created for this control. /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Control FilterTemplate { get { return _filterUserControl; } } protected override void Render(HtmlTextWriter writer) { if (DesignMode) { writer.Write("[" + GetType().Name + "]"); } else { base.Render(writer); } } private void EnsureInit(IQueryableDataSource dataSource) { if (_filterUserControl == null) { MetaTable table = DynamicDataExtensions.GetMetaTable(dataSource, Context); Column = table.GetColumn(DataField); _filterUserControl = _filterLoader(Column, FilterUIHint); _filterUserControl.Initialize(Column, dataSource, Context); _filterUserControl.FilterChanged += new EventHandler(Child_FilterChanged); Controls.Add(_filterUserControl); } } private void Child_FilterChanged(object sender, EventArgs e) { EventHandler eventHandler = FilterChanged; if (eventHandler != null) { eventHandler(sender, e); } } internal void Initialize(IQueryableDataSource dataSource) { Debug.Assert(dataSource != null); EnsureInit(dataSource); } #region IFilterExpressionProvider Members void IFilterExpressionProvider.Initialize(IQueryableDataSource dataSource) { if (dataSource == null) { throw new ArgumentNullException("dataSource"); } _dataSource = dataSource; Page.InitComplete += new EventHandler(Page_InitComplete); } void Page_InitComplete(object sender, EventArgs e) { Debug.Assert(_dataSource != null); EnsureInit(_dataSource); } IQueryable IFilterExpressionProvider.GetQueryable(IQueryable source) { return _filterUserControl.GetQueryable(source); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Web.Compilation; using System.Web.UI; using System.Web.UI.WebControls; #if !ORYX_VNEXT using System.Web.UI.WebControls.Expressions; using System.Web.Resources; #else using Microsoft.Web.Data.UI.WebControls.Expressions; using Microsoft.Web.Data.UI.WebControls; #endif namespace System.Web.DynamicData { public class DynamicFilter : Control, IFilterExpressionProvider { private HttpContextBase _context; private IQueryableDataSource _dataSource; private Func_filterLoader; private QueryableFilterUserControl _filterUserControl; protected internal MetaColumn Column { get; private set; } /// /// The name of the column that this control handles /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicFilter_DataField") ] public string DataField { get { object o = ViewState["DataField"]; return (o == null) ? String.Empty : (string)o; } set { ViewState["DataField"] = value; } } ////// An optional property that can be used to override the column's default default filter UI hint. /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicFilter_FilterUIHint") ] public string FilterUIHint { get { object o = ViewState["FilterUIHint"]; return (o == null) ? String.Empty : (string)o; } set { ViewState["FilterUIHint"] = value; } } public DynamicFilter() : this(CreateUserControl) { } // internal for unit testing internal DynamicFilter(FuncfilterLoader) { _filterLoader = filterLoader; } // internal for unit testing internal static QueryableFilterUserControl CreateUserControl(MetaColumn column, string filterUiHint) { return column.Model.FilterFactory.CreateFilterControl(column, filterUiHint); } internal new HttpContextBase Context { get { return _context ?? new HttpContextWrapper(HttpContext.Current); } set { _context = value; } } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public event EventHandler FilterChanged; /// /// Returns the filter template that was created for this control. /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public Control FilterTemplate { get { return _filterUserControl; } } protected override void Render(HtmlTextWriter writer) { if (DesignMode) { writer.Write("[" + GetType().Name + "]"); } else { base.Render(writer); } } private void EnsureInit(IQueryableDataSource dataSource) { if (_filterUserControl == null) { MetaTable table = DynamicDataExtensions.GetMetaTable(dataSource, Context); Column = table.GetColumn(DataField); _filterUserControl = _filterLoader(Column, FilterUIHint); _filterUserControl.Initialize(Column, dataSource, Context); _filterUserControl.FilterChanged += new EventHandler(Child_FilterChanged); Controls.Add(_filterUserControl); } } private void Child_FilterChanged(object sender, EventArgs e) { EventHandler eventHandler = FilterChanged; if (eventHandler != null) { eventHandler(sender, e); } } internal void Initialize(IQueryableDataSource dataSource) { Debug.Assert(dataSource != null); EnsureInit(dataSource); } #region IFilterExpressionProvider Members void IFilterExpressionProvider.Initialize(IQueryableDataSource dataSource) { if (dataSource == null) { throw new ArgumentNullException("dataSource"); } _dataSource = dataSource; Page.InitComplete += new EventHandler(Page_InitComplete); } void Page_InitComplete(object sender, EventArgs e) { Debug.Assert(_dataSource != null); EnsureInit(_dataSource); } IQueryable IFilterExpressionProvider.GetQueryable(IQueryable source) { return _filterUserControl.GetQueryable(source); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TokenBasedSet.cs
- FilterElement.cs
- PasswordDeriveBytes.cs
- PlatformNotSupportedException.cs
- XsltQilFactory.cs
- ApplicationCommands.cs
- SmtpReplyReader.cs
- MetadataSource.cs
- InheritanceContextChangedEventManager.cs
- OleDbException.cs
- EntityClassGenerator.cs
- ResourceAttributes.cs
- CaseInsensitiveOrdinalStringComparer.cs
- Bits.cs
- Component.cs
- ComplexBindingPropertiesAttribute.cs
- UnsafeNativeMethods.cs
- SafeRightsManagementHandle.cs
- DataListItemEventArgs.cs
- TraceHwndHost.cs
- RepeatButton.cs
- GZipDecoder.cs
- Encoder.cs
- OperationSelectorBehavior.cs
- SystemWebExtensionsSectionGroup.cs
- mda.cs
- InputReferenceExpression.cs
- SecurityPolicySection.cs
- ValidationPropertyAttribute.cs
- SafeThreadHandle.cs
- SingleAnimation.cs
- WmlMobileTextWriter.cs
- GenericWebPart.cs
- UnsupportedPolicyOptionsException.cs
- AppDomainProtocolHandler.cs
- ToolStripItemCollection.cs
- FtpCachePolicyElement.cs
- LogEntry.cs
- SafeNativeMethodsCLR.cs
- ProfileManager.cs
- X500Name.cs
- HotSpotCollection.cs
- ServiceHttpHandlerFactory.cs
- SqlMethodTransformer.cs
- ToolStripContentPanelRenderEventArgs.cs
- FakeModelItemImpl.cs
- ExcCanonicalXml.cs
- BamlLocalizableResource.cs
- TypeConverterAttribute.cs
- SingleConverter.cs
- FileDialogCustomPlacesCollection.cs
- MailBnfHelper.cs
- RuntimeResourceSet.cs
- HttpCacheVaryByContentEncodings.cs
- CrossAppDomainChannel.cs
- OdbcParameter.cs
- ManagementObjectCollection.cs
- InstancePersistenceEvent.cs
- DataSourceDesigner.cs
- RTLAwareMessageBox.cs
- InheritanceRules.cs
- PropertyTab.cs
- CurrencyWrapper.cs
- SafeProcessHandle.cs
- QuotedPairReader.cs
- UrlPropertyAttribute.cs
- ToolStripHighContrastRenderer.cs
- SqlBinder.cs
- Font.cs
- Int32AnimationBase.cs
- PerspectiveCamera.cs
- SetStoryboardSpeedRatio.cs
- ExpressionEditorSheet.cs
- TabletCollection.cs
- COM2ExtendedTypeConverter.cs
- DetailsViewModeEventArgs.cs
- WindowsRichEditRange.cs
- BevelBitmapEffect.cs
- InstancePersistenceException.cs
- QilDataSource.cs
- Thickness.cs
- Bits.cs
- AdornerPresentationContext.cs
- DataGridCommandEventArgs.cs
- OleDbFactory.cs
- JapaneseCalendar.cs
- Walker.cs
- xmlformatgeneratorstatics.cs
- HttpChannelHelper.cs
- DrawingAttributeSerializer.cs
- HwndKeyboardInputProvider.cs
- versioninfo.cs
- DataGridItemEventArgs.cs
- util.cs
- IntMinMaxAggregationOperator.cs
- XmlDownloadManager.cs
- MetadataHelper.cs
- SqlVersion.cs
- OuterGlowBitmapEffect.cs
- BuildManager.cs