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
- EventProviderWriter.cs
- UnsafeNativeMethods.cs
- oledbmetadatacolumnnames.cs
- OutOfMemoryException.cs
- MasterPage.cs
- LogStream.cs
- Ops.cs
- TextEditorCopyPaste.cs
- InputScopeConverter.cs
- NativeCppClassAttribute.cs
- LinkConverter.cs
- ColorAnimation.cs
- ViewKeyConstraint.cs
- WindowsAuthenticationModule.cs
- IntegerFacetDescriptionElement.cs
- Comparer.cs
- TrackingMemoryStreamFactory.cs
- FrameworkContextData.cs
- GridToolTip.cs
- DefaultProxySection.cs
- CompModSwitches.cs
- SimpleWebHandlerParser.cs
- DateRangeEvent.cs
- SqlConnectionPoolProviderInfo.cs
- XamlToRtfParser.cs
- ItemsControl.cs
- RtfNavigator.cs
- SQLRoleProvider.cs
- DatePicker.cs
- SpotLight.cs
- AsymmetricAlgorithm.cs
- TemplateBindingExtension.cs
- DrawingServices.cs
- TemplatedWizardStep.cs
- dsa.cs
- ImageList.cs
- QuaternionAnimation.cs
- ToolStripArrowRenderEventArgs.cs
- DrawingState.cs
- OleAutBinder.cs
- HttpListenerPrefixCollection.cs
- NotCondition.cs
- HttpListenerRequestUriBuilder.cs
- DesignerToolboxInfo.cs
- path.cs
- SystemSounds.cs
- PolicyLevel.cs
- Math.cs
- ImageFormat.cs
- ProfileGroupSettingsCollection.cs
- RootDesignerSerializerAttribute.cs
- ApplicationException.cs
- StreamWriter.cs
- XmlSchemaObjectTable.cs
- HtmlButton.cs
- KnownColorTable.cs
- InputReport.cs
- WebPartManager.cs
- KeyFrames.cs
- OpenTypeCommon.cs
- LockCookie.cs
- Misc.cs
- ButtonRenderer.cs
- CompareInfo.cs
- ConcurrentBag.cs
- CharacterBuffer.cs
- PipelineModuleStepContainer.cs
- PasswordPropertyTextAttribute.cs
- TabletCollection.cs
- ReaderContextStackData.cs
- CodeSnippetTypeMember.cs
- Border.cs
- CustomPeerResolverService.cs
- LiteralControl.cs
- WindowsTab.cs
- DiscardableAttribute.cs
- EntitySqlQueryBuilder.cs
- ServiceTimeoutsElement.cs
- TypeConverter.cs
- EmbossBitmapEffect.cs
- Label.cs
- SettingsSection.cs
- WebBrowserPermission.cs
- FilterableAttribute.cs
- OrderPreservingPipeliningMergeHelper.cs
- ListParagraph.cs
- ObjectPersistData.cs
- DesignerView.cs
- MatrixTransform3D.cs
- ApplicationFileParser.cs
- RequestQueue.cs
- CharacterMetricsDictionary.cs
- Model3DGroup.cs
- JsonReaderDelegator.cs
- UserControl.cs
- ReadOnlyHierarchicalDataSourceView.cs
- HuffModule.cs
- VirtualPathUtility.cs
- MailMessage.cs
- BezierSegment.cs