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
- SynchronizationFilter.cs
- SoapFault.cs
- DataRowComparer.cs
- ScriptResourceInfo.cs
- ConfigXmlCDataSection.cs
- RoutedEventHandlerInfo.cs
- FacetValues.cs
- GroupBoxRenderer.cs
- RectAnimationBase.cs
- CodeTypeOfExpression.cs
- ArraySortHelper.cs
- DataGridViewMethods.cs
- RSAPKCS1SignatureFormatter.cs
- TokenBasedSetEnumerator.cs
- ImageSourceValueSerializer.cs
- MeasureData.cs
- SemanticBasicElement.cs
- typedescriptorpermission.cs
- SessionPageStateSection.cs
- LogSwitch.cs
- Visual3D.cs
- PointLight.cs
- ForwardPositionQuery.cs
- ColorConverter.cs
- XhtmlBasicLabelAdapter.cs
- SmtpReplyReader.cs
- DateTimeFormatInfo.cs
- infer.cs
- PersonalizationDictionary.cs
- AttributedMetaModel.cs
- StyleXamlTreeBuilder.cs
- MultiTouchSystemGestureLogic.cs
- DataGridViewHitTestInfo.cs
- StorageInfo.cs
- XPathCompileException.cs
- Membership.cs
- WebPartEditorOkVerb.cs
- WindowsScrollBarBits.cs
- IisTraceWebEventProvider.cs
- WebPartConnectionsCloseVerb.cs
- Debugger.cs
- EncryptedKeyHashIdentifierClause.cs
- Vector3DCollectionConverter.cs
- TextTreePropertyUndoUnit.cs
- WebPartDisplayMode.cs
- SoapAttributeOverrides.cs
- DateTime.cs
- HyperlinkAutomationPeer.cs
- TextRangeSerialization.cs
- Point3DCollectionConverter.cs
- ItemMap.cs
- SQLBinary.cs
- TripleDES.cs
- DependencyPropertyKind.cs
- ListControl.cs
- CompModHelpers.cs
- HtmlShim.cs
- PageThemeBuildProvider.cs
- ExtenderProviderService.cs
- AnnotationMap.cs
- XmlSchemaComplexContentExtension.cs
- CryptoKeySecurity.cs
- CompoundFileStorageReference.cs
- RTLAwareMessageBox.cs
- XmlnsPrefixAttribute.cs
- TextEditorCharacters.cs
- HttpPostedFileBase.cs
- RelatedImageListAttribute.cs
- SetIndexBinder.cs
- StaticDataManager.cs
- webeventbuffer.cs
- KnownBoxes.cs
- cryptoapiTransform.cs
- DynamicRendererThreadManager.cs
- RepeaterItemEventArgs.cs
- DataControlFieldCell.cs
- SqlConnectionString.cs
- XmlILOptimizerVisitor.cs
- CodeCatchClauseCollection.cs
- InkCanvasSelectionAdorner.cs
- TraceProvider.cs
- CompilerError.cs
- ImageButton.cs
- FactoryGenerator.cs
- NameTable.cs
- ConfigXmlSignificantWhitespace.cs
- Choices.cs
- TemplatedWizardStep.cs
- HttpListenerPrefixCollection.cs
- OdbcRowUpdatingEvent.cs
- ToolStripLabel.cs
- TypedReference.cs
- State.cs
- GeometryCollection.cs
- Transform3D.cs
- CheckBoxAutomationPeer.cs
- Identity.cs
- FaultContractAttribute.cs
- SuppressMessageAttribute.cs
- TypeConstant.cs