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
- ShortcutKeysEditor.cs
- TypeSystemProvider.cs
- ContentDefinition.cs
- SelfSignedCertificate.cs
- PersonalizationStateInfo.cs
- ZoneButton.cs
- ArraySet.cs
- BatchParser.cs
- BuildManager.cs
- TabletDevice.cs
- DataSysAttribute.cs
- EarlyBoundInfo.cs
- DbConnectionPoolIdentity.cs
- CryptoStream.cs
- FileUtil.cs
- DocumentEventArgs.cs
- ValueTable.cs
- ElementUtil.cs
- DataObjectPastingEventArgs.cs
- GridEntry.cs
- RepeaterCommandEventArgs.cs
- AppSettingsExpressionBuilder.cs
- GenericAuthenticationEventArgs.cs
- AnnotationResource.cs
- PasswordBox.cs
- UpWmlPageAdapter.cs
- RegistrationServices.cs
- MouseGestureValueSerializer.cs
- SpoolingTask.cs
- RequestQueryProcessor.cs
- GenericEnumerator.cs
- ConfigurationElementCollection.cs
- RemoveStoryboard.cs
- SQLBytesStorage.cs
- PathFigure.cs
- MyContact.cs
- ErrorWebPart.cs
- StreamedFramingRequestChannel.cs
- WindowsPen.cs
- NavigateUrlConverter.cs
- PartialTrustVisibleAssembliesSection.cs
- PolyQuadraticBezierSegment.cs
- mediaeventshelper.cs
- CompilationUnit.cs
- ProvidersHelper.cs
- BulletedList.cs
- Parsers.cs
- UdpSocketReceiveManager.cs
- BitmapEffectDrawingContextState.cs
- XPathNavigatorKeyComparer.cs
- WorkflowOperationFault.cs
- FileNotFoundException.cs
- TextEditor.cs
- StandardOleMarshalObject.cs
- RoutedCommand.cs
- TreeNode.cs
- datacache.cs
- BinaryWriter.cs
- ScriptReferenceEventArgs.cs
- FontUnitConverter.cs
- DbConnectionPoolOptions.cs
- BitmapData.cs
- LineGeometry.cs
- RichTextBoxAutomationPeer.cs
- TerminatorSinks.cs
- ValidationRule.cs
- ConstNode.cs
- path.cs
- ProxyWebPartManagerDesigner.cs
- CacheEntry.cs
- TableItemPattern.cs
- TypefaceMap.cs
- RequestStatusBarUpdateEventArgs.cs
- DirectionalLight.cs
- TextServicesCompartmentContext.cs
- KeyConverter.cs
- XmlSchemaAny.cs
- XmlSchemaInfo.cs
- QuotedPrintableStream.cs
- ModelTreeManager.cs
- DefaultProxySection.cs
- TlsnegoTokenAuthenticator.cs
- Menu.cs
- PrinterSettings.cs
- ToolStripGripRenderEventArgs.cs
- ConfigurationSettings.cs
- ToolboxItem.cs
- TreeNodeMouseHoverEvent.cs
- XmlSchemaCompilationSettings.cs
- ResponseBodyWriter.cs
- Calendar.cs
- MetadataWorkspace.cs
- DocumentViewerBase.cs
- ReflectEventDescriptor.cs
- RootNamespaceAttribute.cs
- Stack.cs
- PolicyException.cs
- ApplicationFileParser.cs
- Floater.cs
- MediaEntryAttribute.cs