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
- CorrelationQueryBehavior.cs
- DbConnectionPoolCounters.cs
- ToolStripDropDown.cs
- EntitySqlQueryCacheKey.cs
- AssociationTypeEmitter.cs
- SqlCachedBuffer.cs
- ToolBarPanel.cs
- GeneratedCodeAttribute.cs
- CodeCatchClause.cs
- COM2Properties.cs
- MenuItemCollection.cs
- WmlSelectionListAdapter.cs
- TextRange.cs
- StateManagedCollection.cs
- DesignerForm.cs
- control.ime.cs
- CurrencyWrapper.cs
- BrowserPolicyValidator.cs
- WindowsAuthenticationModule.cs
- WebBrowserNavigatedEventHandler.cs
- WindowsStreamSecurityUpgradeProvider.cs
- BasicAsyncResult.cs
- Empty.cs
- ProjectionCamera.cs
- AddToCollection.cs
- XsltFunctions.cs
- FieldNameLookup.cs
- HwndStylusInputProvider.cs
- AstNode.cs
- FileIOPermission.cs
- ParseElementCollection.cs
- GeneralTransform2DTo3DTo2D.cs
- KnownTypesHelper.cs
- ACL.cs
- NamespaceCollection.cs
- WindowsPrincipal.cs
- ProxyWebPart.cs
- ListBoxItemWrapperAutomationPeer.cs
- CollectionMarkupSerializer.cs
- LinkButton.cs
- TextRangeEditLists.cs
- KeyEvent.cs
- CustomAttributeBuilder.cs
- SelfIssuedTokenFactoryCredential.cs
- RowParagraph.cs
- SharedPerformanceCounter.cs
- StyleHelper.cs
- DataKeyCollection.cs
- MouseButton.cs
- Transform3DGroup.cs
- MeshGeometry3D.cs
- StructuredProperty.cs
- KeyedHashAlgorithm.cs
- VariableBinder.cs
- TableItemProviderWrapper.cs
- SocketInformation.cs
- BitmapEffectRenderDataResource.cs
- ToolStripContentPanel.cs
- RegexMatch.cs
- DataGridItemCollection.cs
- CopyNodeSetAction.cs
- QilPatternVisitor.cs
- CheckBoxAutomationPeer.cs
- ImportException.cs
- TemplateNameScope.cs
- ChtmlCalendarAdapter.cs
- RegexGroup.cs
- ToolStripAdornerWindowService.cs
- Visual3D.cs
- XmlSignatureManifest.cs
- Comparer.cs
- WebServiceMethodData.cs
- SourceFilter.cs
- UnsafeNativeMethods.cs
- AsymmetricKeyExchangeFormatter.cs
- DnsPermission.cs
- WebBrowserProgressChangedEventHandler.cs
- Token.cs
- LayoutTable.cs
- DatasetMethodGenerator.cs
- Object.cs
- ReadOnlyDictionary.cs
- SoapWriter.cs
- TableRow.cs
- TrustVersion.cs
- Geometry.cs
- ReflectPropertyDescriptor.cs
- ResourceExpressionEditor.cs
- SizeConverter.cs
- XmlDataCollection.cs
- MobileCategoryAttribute.cs
- SourceSwitch.cs
- RepeaterItemEventArgs.cs
- FrameworkElementAutomationPeer.cs
- EmbeddedMailObject.cs
- CustomAttributeBuilder.cs
- AssemblyAttributes.cs
- AutomationInteropProvider.cs
- MetadataItemEmitter.cs
- Misc.cs