Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / XmlDataSourceView.cs / 1 / 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.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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.Security.Permissions; using System.Text; using System.Web; using System.Web.UI; using System.Xml; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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
- TextElement.cs
- DefaultTextStore.cs
- Compiler.cs
- LocatorPart.cs
- DataGridHeaderBorder.cs
- BindingCollection.cs
- BitmapEffectrendercontext.cs
- EventToken.cs
- FilterableAttribute.cs
- sitestring.cs
- XmlHierarchyData.cs
- ControlValuePropertyAttribute.cs
- XmlDocumentFieldSchema.cs
- KnownBoxes.cs
- DataGridColumnCollection.cs
- EditCommandColumn.cs
- WindowsUpDown.cs
- Stroke.cs
- Vector3D.cs
- Assembly.cs
- webproxy.cs
- SvcFileManager.cs
- RegistryDataKey.cs
- SystemSounds.cs
- CurrencyManager.cs
- Vector3DCollection.cs
- wmiprovider.cs
- XmlSerializableReader.cs
- TypeBrowser.xaml.cs
- NotImplementedException.cs
- XmlNamedNodeMap.cs
- WebResponse.cs
- StrokeNode.cs
- NameHandler.cs
- SqlNotificationEventArgs.cs
- HttpConfigurationContext.cs
- FixedLineResult.cs
- DelegatedStream.cs
- JapaneseCalendar.cs
- _ConnectionGroup.cs
- ToolStripButton.cs
- ChineseLunisolarCalendar.cs
- CustomGrammar.cs
- SynchronizationValidator.cs
- PrimitiveRenderer.cs
- ThreadExceptionDialog.cs
- UnsafeNativeMethods.cs
- CellPartitioner.cs
- ToolStripItemTextRenderEventArgs.cs
- ContentPlaceHolderDesigner.cs
- OdbcHandle.cs
- ToolboxBitmapAttribute.cs
- RenderingEventArgs.cs
- GregorianCalendar.cs
- InkCanvas.cs
- BitmapEffectDrawingContent.cs
- RawTextInputReport.cs
- ListViewItem.cs
- ComplexBindingPropertiesAttribute.cs
- ImageMetadata.cs
- DefaultShape.cs
- DataGridViewCell.cs
- ByteAnimationBase.cs
- MLangCodePageEncoding.cs
- ApplicationBuildProvider.cs
- Fonts.cs
- ValueProviderWrapper.cs
- VarRefManager.cs
- Crypto.cs
- CancelEventArgs.cs
- TextEditorSpelling.cs
- CompiledRegexRunner.cs
- ProtocolViolationException.cs
- LinqDataSourceView.cs
- TabControl.cs
- UserControl.cs
- ObjectViewEntityCollectionData.cs
- AttachedPropertyBrowsableAttribute.cs
- WinFormsSpinner.cs
- RootBrowserWindowAutomationPeer.cs
- XpsResourceDictionary.cs
- BezierSegment.cs
- Operator.cs
- RequestResizeEvent.cs
- StyleTypedPropertyAttribute.cs
- UIElementParagraph.cs
- TypeBuilder.cs
- CodeDelegateInvokeExpression.cs
- SystemUdpStatistics.cs
- UpdateRecord.cs
- sqlser.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- List.cs
- SHA1.cs
- PaintValueEventArgs.cs
- ClientUIRequest.cs
- ValueUnavailableException.cs
- XPathSelfQuery.cs
- HelpFileFileNameEditor.cs
- SystemIPGlobalProperties.cs