Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / WebControls / QueryExtender.cs / 1305376 / QueryExtender.cs
#if ORYX_VNEXT
namespace Microsoft.Web.Data.UI.WebControls {
using System.Web;
using Microsoft.Web.Data.UI.WebControls.Expressions;
#else
namespace System.Web.UI.WebControls {
using System.Web.UI.WebControls.Expressions;
#endif
using System;
using System.ComponentModel;
using System.Drawing;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Security.Permissions;
using System.Web.UI;
using System.Web.Resources;
[TargetControlType(typeof(IQueryableDataSource))]
[NonVisualControl()]
[DefaultProperty("TargetControlID")]
#if !ORYX_VNEXT
[ToolboxBitmap(typeof(QueryExtender), "QueryExtender.bmp")]
[Designer("System.Web.UI.Design.QueryExtenderDesigner, " + AssemblyRef.SystemWebExtensionsDesign)]
#endif
[ParseChildren(true, "Expressions")]
[PersistChildren(false)]
public class QueryExtender : Control {
private QueryExpression _query;
private string _targetControlID;
private IQueryableDataSource _dataSource;
public QueryExtender() {
}
internal QueryExtender(IQueryableDataSource dataSource) {
_dataSource = dataSource;
}
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual IQueryableDataSource DataSource {
get {
if (_dataSource == null) {
if (String.IsNullOrEmpty(TargetControlID)) {
throw new InvalidOperationException(AtlasWeb.DataSourceControlExtender_TargetControlIDMustBeSpecified);
}
#if ORYX_VNEXT
_dataSource = DataSourceExtensions.FindControl(this, TargetControlID) as IQueryableDataSource;
#else
_dataSource = DataBoundControlHelper.FindControl(this, TargetControlID) as IQueryableDataSource;
#endif
//
if (_dataSource == null) {
throw new InvalidOperationException(
String.Format(CultureInfo.CurrentCulture,
AtlasWeb.QueryExtender_DataSourceMustBeIQueryableDataSource,
TargetControlID));
}
}
return _dataSource;
}
}
[
Category("Behavior"),
ResourceDescription("QueryExtender_Expressions"),
PersistenceMode(PersistenceMode.InnerDefaultProperty),
]
public DataSourceExpressionCollection Expressions {
get {
return Query.Expressions;
}
}
[
Category("Behavior"),
DefaultValue(""),
IDReferenceProperty,
ResourceDescription("ExtenderControl_TargetControlID"),
SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "ID"),
]
public virtual string TargetControlID {
get {
return _targetControlID ?? String.Empty;
}
set {
if (_targetControlID != value) {
_dataSource = null;
_targetControlID = value;
}
}
}
private QueryExpression Query {
get {
if (_query == null) {
_query = new QueryExpression();
}
return _query;
}
}
[SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers", MessageId = "0#")]
#if ORYX_VNEXT
protected override void OnInit(EventArgs e) {
#else
protected internal override void OnInit(EventArgs e) {
#endif
if (!DesignMode) {
DataSource.QueryCreated += new EventHandler(OnDataSourceQueryCreated);
// Initialize the Query
Query.Initialize(this, Context, DataSource);
}
base.OnInit(e);
}
private void OnDataSourceQueryCreated(object sender, QueryCreatedEventArgs e) {
e.Query = Query.GetQueryable(e.Query);
}
protected override object SaveViewState() {
Pair p = new Pair();
p.First = base.SaveViewState();
p.Second = _query != null ? ((IStateManager)_query.Expressions).SaveViewState() : null;
return p;
}
protected override void LoadViewState(object savedState) {
Pair p = (Pair)savedState;
base.LoadViewState(p.First);
if (p.Second != null) {
((IStateManager)Query.Expressions).LoadViewState(p.Second);
}
}
protected override void TrackViewState() {
base.TrackViewState();
if (_query != null) {
((IStateManager)_query.Expressions).TrackViewState();
}
}
}
}
// 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
- FixedPageStructure.cs
- WebConfigurationHost.cs
- NumericExpr.cs
- TraceUtils.cs
- CompModHelpers.cs
- Triplet.cs
- ErrorFormatter.cs
- DataGridTablesFactory.cs
- ObjectDataSourceStatusEventArgs.cs
- ExcCanonicalXml.cs
- CompoundFileDeflateTransform.cs
- SoapSchemaExporter.cs
- RequestedSignatureDialog.cs
- InlineCategoriesDocument.cs
- StorageConditionPropertyMapping.cs
- XpsFilter.cs
- MethodBody.cs
- ToolStripButton.cs
- FrameworkContentElement.cs
- NativeWindow.cs
- ActivityDesigner.cs
- NetSectionGroup.cs
- ContentPlaceHolder.cs
- UrlMappingCollection.cs
- FtpCachePolicyElement.cs
- HttpWebResponse.cs
- StringArrayConverter.cs
- LinkDesigner.cs
- IfJoinedCondition.cs
- SmiContext.cs
- OleDbPermission.cs
- RuleSetCollection.cs
- OutOfProcStateClientManager.cs
- ExtensionSurface.cs
- ToolBarOverflowPanel.cs
- CallbackValidator.cs
- GenericXmlSecurityToken.cs
- XmlDownloadManager.cs
- LexicalChunk.cs
- TdsParserSessionPool.cs
- FileSystemEnumerable.cs
- RoutingExtensionElement.cs
- Literal.cs
- XmlSchemaImporter.cs
- SafeSecurityHandles.cs
- EntityDataSourceContainerNameItem.cs
- InboundActivityHelper.cs
- PermissionAttributes.cs
- recordstatescratchpad.cs
- OleServicesContext.cs
- TextLine.cs
- TerminateDesigner.cs
- CacheChildrenQuery.cs
- ResourceSetExpression.cs
- handlecollector.cs
- UnsafeNativeMethods.cs
- IssuedTokenClientCredential.cs
- EvidenceBase.cs
- HttpCapabilitiesEvaluator.cs
- CompositeScriptReference.cs
- IsolatedStoragePermission.cs
- PrintEvent.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CardSpaceShim.cs
- StyleSelector.cs
- ParameterCollectionEditor.cs
- HttpCachePolicyBase.cs
- Codec.cs
- QueryStringParameter.cs
- ToolStripRenderer.cs
- BaseResourcesBuildProvider.cs
- WebPartRestoreVerb.cs
- SqlFacetAttribute.cs
- XhtmlBasicLabelAdapter.cs
- BamlLocalizer.cs
- AdPostCacheSubstitution.cs
- AutomationAttributeInfo.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- UndoUnit.cs
- LogWriteRestartAreaState.cs
- TextBoxLine.cs
- MouseCaptureWithinProperty.cs
- GeneralTransform.cs
- QuotaExceededException.cs
- RequestQueryProcessor.cs
- RunClient.cs
- ImageListDesigner.cs
- HtmlImageAdapter.cs
- ImageField.cs
- XPathParser.cs
- ActivityInterfaces.cs
- ElapsedEventArgs.cs
- ContextBase.cs
- InternalTypeHelper.cs
- JulianCalendar.cs
- SpecularMaterial.cs
- InputScopeAttribute.cs
- VersionPair.cs
- UserControlCodeDomTreeGenerator.cs
- XmlChoiceIdentifierAttribute.cs