You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
262
mcs/class/referencesource/System.Web/UI/DataSourceControl.cs
Normal file
262
mcs/class/referencesource/System.Web/UI/DataSourceControl.cs
Normal file
@ -0,0 +1,262 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="DataSourceControl.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
namespace System.Web.UI {
|
||||
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Security.Permissions;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A DataSourceControl represents a data source that can be used to
|
||||
/// data-bind a DataBoundControl.
|
||||
/// DataSourceControl is an abstract base class that defines the
|
||||
/// interface between a DataBoundControl and its data source.
|
||||
/// The design of DataSourceControl enables creation of a variety of
|
||||
/// data controls with different underlying data sources such
|
||||
/// as SqlDataControl, WebServiceDataControl, XmlDataControl etc.
|
||||
/// The data source is implemented as a control even though it
|
||||
/// has no visual rendering, to allow it to be persisted
|
||||
/// declaratively, and to allow it to participate in state
|
||||
/// management should it choose to.
|
||||
/// In abstract terms a DataSourceControl has an underlying data source.
|
||||
/// This data source may contain one or more lists of data within it.
|
||||
/// Each list is associated with a name and at the bare minimum
|
||||
/// supports enumeration via the IEnumerable interface. A DataBoundControl
|
||||
/// is typically bound to a single list within the DataControl.
|
||||
/// </summary>
|
||||
[
|
||||
Bindable(false),
|
||||
ControlBuilder(typeof(DataSourceControlBuilder)),
|
||||
Designer("System.Web.UI.Design.DataSourceDesigner, " + AssemblyRef.SystemDesign),
|
||||
NonVisualControl()
|
||||
]
|
||||
public abstract class DataSourceControl : Control, IDataSource, IListSource {
|
||||
|
||||
private static readonly object EventDataSourceChanged = new object();
|
||||
private static readonly object EventDataSourceChangedInternal = new object();
|
||||
|
||||
[
|
||||
Browsable(false),
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override string ClientID {
|
||||
get {
|
||||
return base.ClientID;
|
||||
}
|
||||
}
|
||||
|
||||
[
|
||||
Browsable(false),
|
||||
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override ClientIDMode ClientIDMode {
|
||||
get {
|
||||
return base.ClientIDMode;
|
||||
}
|
||||
set {
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
}
|
||||
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override ControlCollection Controls {
|
||||
get {
|
||||
return base.Controls;
|
||||
}
|
||||
}
|
||||
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(false),
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override bool EnableTheming {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
set {
|
||||
throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name));
|
||||
}
|
||||
}
|
||||
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(""),
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override string SkinID {
|
||||
get {
|
||||
return String.Empty;
|
||||
}
|
||||
set {
|
||||
throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value that indicates whether a control should be rendered on
|
||||
/// the page.
|
||||
/// </summary>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(false),
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override bool Visible {
|
||||
get {
|
||||
return false;
|
||||
}
|
||||
set {
|
||||
throw new NotSupportedException(SR.GetString(SR.ControlNonVisual, this.GetType().Name));
|
||||
}
|
||||
}
|
||||
|
||||
/// <devdoc>
|
||||
/// Raised internally by a DataSource when data-related state is
|
||||
/// changed. DataSourceViews attach to this event so that they can
|
||||
/// be notified when the parent data source changes.
|
||||
/// This event is separate from DataSourceChanged because the DataSourceView
|
||||
/// attaches to it and fires its DataSourceViewChanged event. We want that
|
||||
/// to fire before the DataSourceChanged event.
|
||||
/// </devdoc>
|
||||
internal event EventHandler DataSourceChangedInternal {
|
||||
add {
|
||||
Events.AddHandler(EventDataSourceChangedInternal, value);
|
||||
}
|
||||
remove {
|
||||
Events.RemoveHandler(EventDataSourceChangedInternal, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override void ApplyStyleSheetSkin(Page page) {
|
||||
base.ApplyStyleSheetSkin(page);
|
||||
}
|
||||
|
||||
/// <devdoc>
|
||||
/// Overidden to prevent child controls from being added to this control.
|
||||
/// </devdoc>
|
||||
protected override ControlCollection CreateControlCollection() {
|
||||
return new EmptyControlCollection(this);
|
||||
}
|
||||
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override Control FindControl(string id) {
|
||||
return base.FindControl(id);
|
||||
}
|
||||
|
||||
/// <devdoc>
|
||||
/// </devdoc>
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override void Focus() {
|
||||
throw new NotSupportedException(SR.GetString(SR.NoFocusSupport, this.GetType().Name));
|
||||
}
|
||||
|
||||
protected abstract DataSourceView GetView(string viewName);
|
||||
|
||||
protected virtual ICollection GetViewNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override bool HasControls() {
|
||||
return base.HasControls();
|
||||
}
|
||||
|
||||
private void OnDataSourceChanged(EventArgs e) {
|
||||
EventHandler handler = (EventHandler)Events[EventDataSourceChanged];
|
||||
if (handler != null) {
|
||||
handler(this, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDataSourceChangedInternal(EventArgs e) {
|
||||
EventHandler handler = (EventHandler)Events[EventDataSourceChangedInternal];
|
||||
if (handler != null) {
|
||||
handler(this, e);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void RaiseDataSourceChangedEvent(EventArgs e) {
|
||||
OnDataSourceChangedInternal(e);
|
||||
OnDataSourceChanged(e);
|
||||
}
|
||||
|
||||
[
|
||||
EditorBrowsable(EditorBrowsableState.Never),
|
||||
]
|
||||
public override void RenderControl(HtmlTextWriter writer) {
|
||||
base.RenderControl(writer);
|
||||
}
|
||||
|
||||
|
||||
#region Implementation of IDataSource
|
||||
/// <summary>
|
||||
/// Raised when the underlying data source has changed. The
|
||||
/// change may be due to a change in the control's properties,
|
||||
/// or a change in the data due to an edit action performed by
|
||||
/// the DataSourceControl.
|
||||
/// </summary>
|
||||
event EventHandler IDataSource.DataSourceChanged {
|
||||
add {
|
||||
Events.AddHandler(EventDataSourceChanged, value);
|
||||
}
|
||||
remove {
|
||||
Events.RemoveHandler(EventDataSourceChanged, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
DataSourceView IDataSource.GetView(string viewName) {
|
||||
return GetView(viewName);
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
ICollection IDataSource.GetViewNames() {
|
||||
return GetViewNames();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region Implementation of IListSource
|
||||
|
||||
/// <internalonly/>
|
||||
bool IListSource.ContainsListCollection {
|
||||
get {
|
||||
if (DesignMode) {
|
||||
return false;
|
||||
}
|
||||
return ListSourceHelper.ContainsListCollection(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
IList IListSource.GetList() {
|
||||
if (DesignMode) {
|
||||
return null;
|
||||
}
|
||||
return ListSourceHelper.GetList(this);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user