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
- XmlIncludeAttribute.cs
- CompiledIdentityConstraint.cs
- RectAnimation.cs
- ColumnReorderedEventArgs.cs
- DecimalConverter.cs
- RedistVersionInfo.cs
- PrintEvent.cs
- DictionaryEntry.cs
- IntSumAggregationOperator.cs
- XamlPoint3DCollectionSerializer.cs
- ReferencedAssemblyResolver.cs
- ParseNumbers.cs
- TemplateXamlParser.cs
- DesignerObject.cs
- DataGridViewImageCell.cs
- ByteAnimation.cs
- WebUtil.cs
- SafeMILHandle.cs
- DynamicEndpoint.cs
- OracleParameterBinding.cs
- ModuleBuilderData.cs
- EntityModelBuildProvider.cs
- InitializerFacet.cs
- RegexCompiler.cs
- BaseTemplateParser.cs
- AudioStateChangedEventArgs.cs
- ObjectSpanRewriter.cs
- DescendantOverDescendantQuery.cs
- XmlKeywords.cs
- ICollection.cs
- BitmapCodecInfoInternal.cs
- precedingsibling.cs
- MediaTimeline.cs
- SkinBuilder.cs
- SoapFormatterSinks.cs
- PrintingPermissionAttribute.cs
- ResourcesBuildProvider.cs
- SoapSchemaExporter.cs
- ResourceReader.cs
- ControlBindingsCollection.cs
- HelpProvider.cs
- ManipulationDelta.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- listitem.cs
- OleDbReferenceCollection.cs
- UriExt.cs
- ImageAnimator.cs
- TriState.cs
- FormsAuthenticationModule.cs
- RtfControlWordInfo.cs
- AspNetHostingPermission.cs
- RegionIterator.cs
- ComponentCodeDomSerializer.cs
- ipaddressinformationcollection.cs
- RegionData.cs
- RelationshipSet.cs
- ViewCellRelation.cs
- ObjectStateEntry.cs
- XmlSchemaObjectCollection.cs
- Gdiplus.cs
- TextProperties.cs
- StrongNameKeyPair.cs
- TileBrush.cs
- Object.cs
- ProxyHelper.cs
- LocalBuilder.cs
- DispatchChannelSink.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- ResourceManagerWrapper.cs
- HttpProfileBase.cs
- PrintControllerWithStatusDialog.cs
- GlyphTypeface.cs
- GenericAuthenticationEventArgs.cs
- BulletedListDesigner.cs
- FormsIdentity.cs
- OleDbParameterCollection.cs
- MonthChangedEventArgs.cs
- SHA256Managed.cs
- ToolStripDropDownMenu.cs
- RepeaterItemEventArgs.cs
- GeometryCombineModeValidation.cs
- OneOfScalarConst.cs
- CheckBoxRenderer.cs
- TdsParserSafeHandles.cs
- PropertyChangedEventManager.cs
- CodeDefaultValueExpression.cs
- MetafileHeader.cs
- TransformerInfo.cs
- SByte.cs
- HandledMouseEvent.cs
- ByteBufferPool.cs
- KeyInstance.cs
- ZipIOCentralDirectoryBlock.cs
- KeyConstraint.cs
- TabControlCancelEvent.cs
- LookupNode.cs
- XsdBuildProvider.cs
- StylusButtonCollection.cs
- PostBackOptions.cs
- ManipulationDelta.cs