Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / XmlDataSourceView.cs / 1305376 / XmlDataSourceView.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing.Design; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// public sealed class XmlDataSourceView : DataSourceView { private XmlDataSource _owner; ////// Creates a new instance of XmlDataSourceView. /// public XmlDataSourceView(XmlDataSource owner, string name) : base(owner, name) { _owner = owner; } ////// Returns all the rows of the datasource. /// protected internal override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments) { arguments.RaiseUnsupportedCapabilitiesError(this); XmlNode root = _owner.GetXmlDocument(); XmlNodeList nodes = null; if (_owner.XPath.Length != 0) { // If an XPath is specified on the control, use it nodes = root.SelectNodes(_owner.XPath); } else { // Otherwise, get all the children of the root nodes = root.SelectNodes("/node()/node()"); } return new XmlDataSourceNodeDescriptorEnumeration(nodes); } public IEnumerable Select(DataSourceSelectArguments arguments) { return ExecuteSelect(arguments); } private class XmlDataSourceNodeDescriptorEnumeration : ICollection { private XmlNodeList _nodes; private int _count = -1; // -1 indicates we have not yet calculated the count public XmlDataSourceNodeDescriptorEnumeration(XmlNodeList nodes) { Debug.Assert(nodes != null, "Did not expect null node list"); _nodes = nodes; } IEnumerator IEnumerable.GetEnumerator() { foreach (XmlNode node in _nodes) { if (node.NodeType == XmlNodeType.Element) { yield return new XmlDataSourceNodeDescriptor(node); } } } int ICollection.Count { get { if (_count == -1) { // If the count has not yet been set, calculate the element count _count = 0; foreach (XmlNode node in _nodes) { if (node.NodeType == XmlNodeType.Element) { _count++; } } } return _count; } } bool ICollection.IsSynchronized { get { return false; } } object ICollection.SyncRoot { get { return null; } } void ICollection.CopyTo(Array array, int index) { for (IEnumerator e = ((IEnumerable)this).GetEnumerator(); e.MoveNext(); ) { array.SetValue(e.Current, index++); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DoubleConverter.cs
- XmlAggregates.cs
- DataControlFieldCollection.cs
- XmlNamedNodeMap.cs
- Inline.cs
- Rotation3DAnimationBase.cs
- SwitchAttribute.cs
- Fonts.cs
- CodeCommentStatementCollection.cs
- JsonDeserializer.cs
- InstancePersistenceCommand.cs
- EventProxy.cs
- RoutingEndpointTrait.cs
- ComponentDispatcher.cs
- HttpWebRequest.cs
- BinaryMethodMessage.cs
- COM2ComponentEditor.cs
- ToolTipService.cs
- FilterElement.cs
- XmlILCommand.cs
- Listbox.cs
- BCLDebug.cs
- MarshalDirectiveException.cs
- ISFTagAndGuidCache.cs
- ErrorHandlingReceiver.cs
- CatalogZone.cs
- DbConnectionHelper.cs
- ContextMarshalException.cs
- PerformanceCounter.cs
- GenericPrincipal.cs
- ItemTypeToolStripMenuItem.cs
- SmiTypedGetterSetter.cs
- DesignerUtility.cs
- TreeBuilderBamlTranslator.cs
- TextTabProperties.cs
- SmiGettersStream.cs
- MbpInfo.cs
- XamlBrushSerializer.cs
- TextEndOfLine.cs
- FixUpCollection.cs
- RenderOptions.cs
- ClosureBinding.cs
- IncrementalHitTester.cs
- ModuleElement.cs
- SqlCaseSimplifier.cs
- AnnotationResourceChangedEventArgs.cs
- MetadataCacheItem.cs
- XappLauncher.cs
- AnnotationHighlightLayer.cs
- FormsAuthenticationConfiguration.cs
- MultilineStringConverter.cs
- ProcessModelInfo.cs
- PackageDigitalSignature.cs
- DataGridHeaderBorder.cs
- TextServicesDisplayAttributePropertyRanges.cs
- StringArrayConverter.cs
- PageContentAsyncResult.cs
- StringValueSerializer.cs
- SectionInformation.cs
- FilteredReadOnlyMetadataCollection.cs
- SessionEndedEventArgs.cs
- EventRouteFactory.cs
- DirectoryRootQuery.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- SecurityElement.cs
- EDesignUtil.cs
- _AutoWebProxyScriptWrapper.cs
- GifBitmapDecoder.cs
- IPAddress.cs
- RelationshipNavigation.cs
- DataGridHelper.cs
- XAMLParseException.cs
- FontStretches.cs
- FrameAutomationPeer.cs
- AncestorChangedEventArgs.cs
- PersonalizationAdministration.cs
- SystemException.cs
- SqlCommandSet.cs
- CookieProtection.cs
- MeasureData.cs
- PolicyManager.cs
- LookupNode.cs
- AsyncPostBackTrigger.cs
- HttpRequest.cs
- ListItem.cs
- ParallelDesigner.cs
- HostingPreferredMapPath.cs
- UnknownBitmapEncoder.cs
- RectangleGeometry.cs
- RectangleConverter.cs
- AppAction.cs
- ChannelDispatcherBase.cs
- RoleManagerEventArgs.cs
- SiteIdentityPermission.cs
- SqlDataRecord.cs
- TextTreeTextElementNode.cs
- PageParserFilter.cs
- DeviceSpecificDialogCachedState.cs
- BinaryObjectReader.cs
- Privilege.cs