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
- Logging.cs
- JournalEntry.cs
- RemoteWebConfigurationHostServer.cs
- PassportAuthenticationEventArgs.cs
- FontStyles.cs
- XmlSchemaSubstitutionGroup.cs
- externdll.cs
- XmlSchemaObjectCollection.cs
- ImageCodecInfo.cs
- StorageScalarPropertyMapping.cs
- MarkupWriter.cs
- PageTheme.cs
- DataFormat.cs
- Int16KeyFrameCollection.cs
- ProtocolsConfigurationEntry.cs
- WebPartUtil.cs
- ElapsedEventArgs.cs
- ColumnWidthChangingEvent.cs
- StatusBarPanel.cs
- FileAuthorizationModule.cs
- XmlArrayAttribute.cs
- CompiledIdentityConstraint.cs
- WebPartConnectionsConfigureVerb.cs
- StreamResourceInfo.cs
- SynchronizedDispatch.cs
- EtwTrace.cs
- SchemaAttDef.cs
- SecurityKeyType.cs
- ObjectReaderCompiler.cs
- WebPartConnectVerb.cs
- HtmlContainerControl.cs
- SHA384.cs
- DataTableTypeConverter.cs
- __Filters.cs
- FixedSOMTableCell.cs
- String.cs
- shaperfactoryquerycachekey.cs
- XdrBuilder.cs
- FontSourceCollection.cs
- EntityReference.cs
- KnownBoxes.cs
- Point3DAnimationUsingKeyFrames.cs
- Debug.cs
- PropertyDescriptorGridEntry.cs
- VectorValueSerializer.cs
- TraceContext.cs
- WriteTimeStream.cs
- ListView.cs
- InvalidBodyAccessException.cs
- PerformanceCounter.cs
- TabletDeviceInfo.cs
- XmlILTrace.cs
- DbDataReader.cs
- IList.cs
- TemplateApplicationHelper.cs
- TrustLevelCollection.cs
- TabControlCancelEvent.cs
- XPathBuilder.cs
- QueryAccessibilityHelpEvent.cs
- Rotation3DAnimationUsingKeyFrames.cs
- Int64KeyFrameCollection.cs
- LinqDataSourceView.cs
- TextEditorTyping.cs
- SafeFileMappingHandle.cs
- RIPEMD160Managed.cs
- SoapCodeExporter.cs
- ProcessRequestArgs.cs
- DataRow.cs
- XamlToRtfParser.cs
- CroppedBitmap.cs
- LateBoundBitmapDecoder.cs
- TheQuery.cs
- XmlDataContract.cs
- InheritablePropertyChangeInfo.cs
- CellCreator.cs
- SchemaImporterExtensionElementCollection.cs
- Clock.cs
- sqlser.cs
- XmlSchemaComplexContent.cs
- XPathSingletonIterator.cs
- SafeFreeMibTable.cs
- ThicknessConverter.cs
- CertificateReferenceElement.cs
- RightsManagementEncryptionTransform.cs
- ZipIOLocalFileHeader.cs
- dbdatarecord.cs
- Permission.cs
- CombinedGeometry.cs
- FederatedMessageSecurityOverHttpElement.cs
- ExceptionHandler.cs
- TransactionScope.cs
- securitymgrsite.cs
- PropertyPathConverter.cs
- LineBreakRecord.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- X509ChainElement.cs
- WebBrowser.cs
- TemplateApplicationHelper.cs
- RotateTransform3D.cs
- EntityDataSourceChangedEventArgs.cs