Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- EntityClassGenerator.cs
- RoleService.cs
- OdbcFactory.cs
- BidPrivateBase.cs
- Expression.DebuggerProxy.cs
- SmtpMail.cs
- SqlCachedBuffer.cs
- TemplateBindingExtensionConverter.cs
- ProviderConnectionPoint.cs
- PersonalizationAdministration.cs
- _UriTypeConverter.cs
- BookmarkOptionsHelper.cs
- VarRemapper.cs
- DLinqColumnProvider.cs
- ArraySubsetEnumerator.cs
- SqlDataReaderSmi.cs
- CannotUnloadAppDomainException.cs
- PaperSize.cs
- EncodingStreamWrapper.cs
- KeyboardNavigation.cs
- WaitForChangedResult.cs
- RoleService.cs
- ToolStripPanelCell.cs
- MenuBase.cs
- SecurityPolicySection.cs
- SoapExtensionTypeElementCollection.cs
- SpellerHighlightLayer.cs
- SslStream.cs
- OdbcEnvironmentHandle.cs
- HtmlUtf8RawTextWriter.cs
- SymbolMethod.cs
- PassportAuthenticationModule.cs
- ImageDrawing.cs
- SelectionPatternIdentifiers.cs
- ClientOperation.cs
- isolationinterop.cs
- ClientData.cs
- X509ChainElement.cs
- InkCanvasAutomationPeer.cs
- ValidationHelpers.cs
- ApplyImportsAction.cs
- SqlParameter.cs
- StringCollectionMarkupSerializer.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- QilInvoke.cs
- Selection.cs
- Knowncolors.cs
- GenericEnumConverter.cs
- ActivityCollectionMarkupSerializer.cs
- SqlDataSource.cs
- EntityDesignerBuildProvider.cs
- GPRECT.cs
- LinqDataSourceContextEventArgs.cs
- SqlGatherProducedAliases.cs
- PeerApplication.cs
- SiteMapDataSource.cs
- CngKeyCreationParameters.cs
- CuspData.cs
- ListBoxDesigner.cs
- BypassElementCollection.cs
- exports.cs
- WindowsFont.cs
- WeakRefEnumerator.cs
- ExpressionVisitor.cs
- CompilerState.cs
- DataGridViewUtilities.cs
- WSHttpSecurity.cs
- Control.cs
- WebServicesSection.cs
- CharStorage.cs
- RadioButtonList.cs
- PeerNameRecord.cs
- OdbcDataAdapter.cs
- PersistChildrenAttribute.cs
- OutOfMemoryException.cs
- XmlSchemaSimpleType.cs
- TdsParameterSetter.cs
- SqlCommandBuilder.cs
- StoreContentChangedEventArgs.cs
- TreeNodeStyleCollection.cs
- StreamingContext.cs
- MimeFormReflector.cs
- FixedSOMTableRow.cs
- BaseDataList.cs
- BindingSource.cs
- SoapTypeAttribute.cs
- XmlSchemaElement.cs
- DrawingImage.cs
- OptimalBreakSession.cs
- HtmlInputReset.cs
- XmlSchemaObjectCollection.cs
- FlowLayoutPanel.cs
- MimeXmlReflector.cs
- FontCacheLogic.cs
- GridLengthConverter.cs
- Publisher.cs
- wgx_exports.cs
- ResXResourceReader.cs
- WpfGeneratedKnownTypes.cs
- NameSpaceEvent.cs