Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebControls / XmlDataSourceView.cs / 1 / 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.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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. //------------------------------------------------------------------------------ //// 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.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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
- SuppressMessageAttribute.cs
- ListBindingHelper.cs
- OdbcCommandBuilder.cs
- ContentAlignmentEditor.cs
- safemediahandle.cs
- SystemColorTracker.cs
- WebPermission.cs
- ResourcePool.cs
- ItemsChangedEventArgs.cs
- ObjectDataProvider.cs
- EventArgs.cs
- ContextQuery.cs
- BindingCompleteEventArgs.cs
- OdbcEnvironment.cs
- NeutralResourcesLanguageAttribute.cs
- MultiPropertyDescriptorGridEntry.cs
- SmtpFailedRecipientsException.cs
- UpdateTracker.cs
- PeerSecurityHelpers.cs
- HelloMessageApril2005.cs
- X509ClientCertificateAuthenticationElement.cs
- OutputWindow.cs
- TextPattern.cs
- PeerChannelListener.cs
- LogSwitch.cs
- RoleManagerModule.cs
- ExpressionBuilderCollection.cs
- SelectQueryOperator.cs
- Crc32.cs
- EnumerableRowCollection.cs
- StrongNameKeyPair.cs
- CommonObjectSecurity.cs
- DataGridViewEditingControlShowingEventArgs.cs
- LineSegment.cs
- HtmlWindowCollection.cs
- SpoolingTaskBase.cs
- MappingMetadataHelper.cs
- TextEditorDragDrop.cs
- SiteMap.cs
- NominalTypeEliminator.cs
- LoginName.cs
- KeyedPriorityQueue.cs
- PageSettings.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- PrinterSettings.cs
- XmlAttributeAttribute.cs
- Message.cs
- CacheDict.cs
- remotingproxy.cs
- DependencyPropertyHelper.cs
- securitycriticaldata.cs
- NumberFormatInfo.cs
- WebControlsSection.cs
- PointLight.cs
- IIS7UserPrincipal.cs
- _PooledStream.cs
- ping.cs
- VerificationException.cs
- TextCompositionEventArgs.cs
- NamespaceList.cs
- RedirectionProxy.cs
- InternalSafeNativeMethods.cs
- DialogDivider.cs
- VariantWrapper.cs
- TabControlCancelEvent.cs
- MessageQueueAccessControlEntry.cs
- UserValidatedEventArgs.cs
- ZipIOBlockManager.cs
- oledbmetadatacollectionnames.cs
- Decoder.cs
- ResponseStream.cs
- CfgArc.cs
- ServiceMetadataExtension.cs
- PtsContext.cs
- LocalizedNameDescriptionPair.cs
- ComboBoxRenderer.cs
- ToolStripItemImageRenderEventArgs.cs
- KeyPressEvent.cs
- ColorMap.cs
- EndpointIdentity.cs
- Ops.cs
- SHA512Managed.cs
- LinqDataSourceStatusEventArgs.cs
- StringDictionary.cs
- IncrementalHitTester.cs
- PermissionSetTriple.cs
- StyleModeStack.cs
- XmlWellformedWriter.cs
- LinqDataSourceUpdateEventArgs.cs
- GeometryCollection.cs
- TextFindEngine.cs
- ToolboxDataAttribute.cs
- TimeoutTimer.cs
- XmlNullResolver.cs
- WebPartManagerInternals.cs
- MultipartIdentifier.cs
- Floater.cs
- TextSelection.cs
- MenuItem.cs
- Debug.cs