Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / ListControls / BaseDataListPage.cs / 1 / BaseDataListPage.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design.WebControls.ListControls {
using System.Design;
using System;
using System.CodeDom;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Data;
using System.Drawing;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using System.Windows.Forms.Design;
///
///
/// The base class for all DataGrid and DataList component editor pages.
///
///
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
internal abstract class BaseDataListPage : ComponentEditorPage {
private bool dataGridMode;
protected abstract string HelpKeyword {
get;
}
protected bool IsDataGridMode {
get {
return dataGridMode;
}
}
protected BaseDataList GetBaseControl() {
IComponent selectedComponent = GetSelectedComponent();
Debug.Assert(selectedComponent is BaseDataList,
"Unexpected component type for BaseDataListPage: " + selectedComponent.GetType().FullName);
return (BaseDataList)selectedComponent;
}
protected BaseDataListDesigner GetBaseDesigner() {
BaseDataListDesigner controlDesigner = null;
IComponent selectedComponent = GetSelectedComponent();
ISite componentSite = selectedComponent.Site;
Debug.Assert(componentSite != null, "Expected the component to be sited.");
IDesignerHost designerHost = (IDesignerHost)componentSite.GetService(typeof(IDesignerHost));
Debug.Assert(designerHost != null, "Expected a designer host.");
if (designerHost != null) {
object designer = designerHost.GetDesigner(selectedComponent);
Debug.Assert(designer != null, "Expected a designer for the selected component");
Debug.Assert(designer is BaseDataListDesigner, "Expected a designer that derives from BaseDataListDesigner");
controlDesigner = (BaseDataListDesigner)designer;
}
return controlDesigner;
}
///
///
/// Sets the component that is to be edited in the page.
///
public override void SetComponent(IComponent component) {
base.SetComponent(component);
dataGridMode = (GetBaseControl() is System.Web.UI.WebControls.DataGrid);
string rtlText = SR.GetString(SR.RTL);
if (!String.Equals(rtlText, "RTL_False", StringComparison.Ordinal)) {
RightToLeft = RightToLeft.Yes;
}
}
///
public override void ShowHelp() {
IComponent selectedComponent = GetSelectedComponent();
ISite componentSite = selectedComponent.Site;
Debug.Assert(componentSite != null, "Expected the component to be sited.");
IHelpService helpService = (IHelpService)componentSite.GetService(typeof(IHelpService));
if (helpService != null) {
helpService.ShowHelpFromKeyword(HelpKeyword);
}
}
///
public override bool SupportsHelp() {
return true;
}
///
///
/// This contains information about a datasource and is used to populate
/// the datasource combo. This is used in the General page for a DataList
/// and the Data page for a DataGrid.
///
protected class DataSourceItem {
private IEnumerable runtimeDataSource;
private string dataSourceName;
private PropertyDescriptorCollection dataFields;
public DataSourceItem(string dataSourceName, IEnumerable runtimeDataSource) {
Debug.Assert(dataSourceName != null, "invalid name for datasource");
this.runtimeDataSource = runtimeDataSource;
this.dataSourceName = dataSourceName;
}
public PropertyDescriptorCollection Fields {
get {
if (dataFields == null) {
IEnumerable ds = RuntimeDataSource;
if (ds != null) {
dataFields = DesignTimeData.GetDataFields(ds);
}
}
if (dataFields == null) {
dataFields = new PropertyDescriptorCollection(null);
}
return dataFields;
}
}
public virtual bool HasDataMembers {
get {
return false;
}
}
public string Name {
get {
return dataSourceName;
}
}
protected virtual object RuntimeComponent {
get {
return runtimeDataSource;
}
}
protected virtual IEnumerable RuntimeDataSource {
get {
return runtimeDataSource;
}
}
protected void ClearFields() {
dataFields = null;
}
public override string ToString() {
return this.Name;
}
}
///
///
///
protected class ListSourceDataSourceItem : DataSourceItem {
private IListSource runtimeListSource;
private string currentDataMember;
public ListSourceDataSourceItem(string dataSourceName, IListSource runtimeListSource) :
base(dataSourceName, null) {
Debug.Assert(runtimeListSource != null);
this.runtimeListSource = runtimeListSource;
}
public string CurrentDataMember {
get {
return currentDataMember;
}
set {
currentDataMember = value;
ClearFields();
}
}
public override bool HasDataMembers {
get {
return runtimeListSource.ContainsListCollection;
}
}
protected override object RuntimeComponent {
get {
return runtimeListSource;
}
}
protected override IEnumerable RuntimeDataSource {
get {
if (HasDataMembers) {
return DesignTimeData.GetDataMember(runtimeListSource, currentDataMember);
}
else {
return (IEnumerable)runtimeListSource.GetList();
}
}
}
}
}
}
// 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
- StorageMappingFragment.cs
- ResourcesGenerator.cs
- LinkedResource.cs
- SoapSchemaImporter.cs
- XMLSyntaxException.cs
- X509Certificate2Collection.cs
- XmlILAnnotation.cs
- EditCommandColumn.cs
- DataGridViewCellStyle.cs
- Stroke2.cs
- ItemList.cs
- Code.cs
- ChtmlTextBoxAdapter.cs
- FtpWebRequest.cs
- ReaderWriterLockWrapper.cs
- QuadraticBezierSegment.cs
- HMACSHA512.cs
- DetailsViewPageEventArgs.cs
- sitestring.cs
- OneOfElement.cs
- SmtpDateTime.cs
- ControlCommandSet.cs
- PerformanceCounterPermissionAttribute.cs
- DuplicateWaitObjectException.cs
- JsonReader.cs
- HtmlPageAdapter.cs
- SamlNameIdentifierClaimResource.cs
- ServiceThrottlingBehavior.cs
- TransportSecurityHelpers.cs
- TransactionProtocolConverter.cs
- DataTableReader.cs
- ListItemConverter.cs
- BindingCollection.cs
- Fx.cs
- FileSystemEventArgs.cs
- XsltException.cs
- DBCommandBuilder.cs
- EmbeddedObject.cs
- WindowsSysHeader.cs
- ComponentManagerBroker.cs
- BmpBitmapDecoder.cs
- FilteredAttributeCollection.cs
- figurelength.cs
- ListDictionaryInternal.cs
- MeasurementDCInfo.cs
- WebInvokeAttribute.cs
- SerialPinChanges.cs
- ChineseLunisolarCalendar.cs
- ProgressBar.cs
- ACE.cs
- DbMetaDataColumnNames.cs
- LayeredChannelFactory.cs
- X509Certificate.cs
- RoleManagerEventArgs.cs
- WeakReadOnlyCollection.cs
- FindCriteriaCD1.cs
- LineServicesRun.cs
- SolidColorBrush.cs
- AstNode.cs
- RecordManager.cs
- XpsStructure.cs
- SqlStream.cs
- UseAttributeSetsAction.cs
- EntityDataSourceDataSelection.cs
- MetaModel.cs
- MetadataArtifactLoaderCompositeFile.cs
- EntityDataReader.cs
- SqlServer2KCompatibilityAnnotation.cs
- RequestResizeEvent.cs
- Viewport3DAutomationPeer.cs
- SingleObjectCollection.cs
- CodeNamespaceImportCollection.cs
- XmlArrayItemAttributes.cs
- ApplicationServicesHostFactory.cs
- LiteralSubsegment.cs
- RemoveStoryboard.cs
- TemplatePropertyEntry.cs
- XmlTextReader.cs
- DesignTimeVisibleAttribute.cs
- AttributeEmitter.cs
- RSAOAEPKeyExchangeFormatter.cs
- HtmlMobileTextWriter.cs
- CachedFontFace.cs
- StringArrayConverter.cs
- DSASignatureDeformatter.cs
- EUCJPEncoding.cs
- SQLInt64Storage.cs
- ValidationHelper.cs
- FormDesigner.cs
- DefaultTextStore.cs
- DateTimePickerDesigner.cs
- GradientBrush.cs
- BaseTemplateCodeDomTreeGenerator.cs
- PermissionSet.cs
- SecUtil.cs
- PostBackTrigger.cs
- VisualBrush.cs
- OdbcReferenceCollection.cs
- DetailsViewRow.cs
- NetDataContractSerializer.cs