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
- InheritanceRules.cs
- ToolStripContextMenu.cs
- ECDiffieHellmanPublicKey.cs
- TailCallAnalyzer.cs
- ConfigurationLocationCollection.cs
- EntityConnectionStringBuilder.cs
- BitmapPalettes.cs
- FileDialogCustomPlace.cs
- TextCollapsingProperties.cs
- XamlLoadErrorInfo.cs
- FormsAuthenticationEventArgs.cs
- SudsWriter.cs
- AnnotationAdorner.cs
- Process.cs
- ClientSession.cs
- X500Name.cs
- XmlComplianceUtil.cs
- Reference.cs
- HttpSocketManager.cs
- WindowsSysHeader.cs
- ActivityValidator.cs
- RsaSecurityKey.cs
- ListBoxItemAutomationPeer.cs
- SpellerInterop.cs
- DispatchWrapper.cs
- TextWriter.cs
- DateTime.cs
- NamespaceMapping.cs
- InterleavedZipPartStream.cs
- MenuItemBinding.cs
- HttpRequestCacheValidator.cs
- SQLUtility.cs
- FileDialogCustomPlacesCollection.cs
- SoapCommonClasses.cs
- PropertyCondition.cs
- WsdlInspector.cs
- sortedlist.cs
- _NtlmClient.cs
- RemoteEndpointMessageProperty.cs
- MimeParameters.cs
- GroupBoxAutomationPeer.cs
- CngProperty.cs
- VectorCollection.cs
- DataSetMappper.cs
- ProbeMatchesMessage11.cs
- CodeGenerator.cs
- WebBrowser.cs
- WriteLine.cs
- _SafeNetHandles.cs
- DependentList.cs
- GeneralTransform3D.cs
- LayoutTableCell.cs
- EdmEntityTypeAttribute.cs
- HttpFileCollection.cs
- DependencyPropertyAttribute.cs
- Util.cs
- XmlWrappingReader.cs
- WebPartMenuStyle.cs
- COMException.cs
- TraceContext.cs
- LayoutInformation.cs
- RightsManagementEncryptionTransform.cs
- SymbolEqualComparer.cs
- ActionMessageFilter.cs
- InternalConfigEventArgs.cs
- RelationshipSet.cs
- DataExpression.cs
- GrabHandleGlyph.cs
- CheckBox.cs
- WebPartConnection.cs
- MessageCredentialType.cs
- ItemChangedEventArgs.cs
- InteropExecutor.cs
- SqlUtils.cs
- ApplicationServiceHelper.cs
- ErrorFormatter.cs
- AuthorizationSection.cs
- OdbcParameterCollection.cs
- OdbcEnvironment.cs
- UpdateDelegates.Generated.cs
- GlyphCache.cs
- RectangleGeometry.cs
- BamlLocalizer.cs
- ObjectTypeMapping.cs
- XsdCachingReader.cs
- DataGridViewImageColumn.cs
- PathFigureCollectionValueSerializer.cs
- LineMetrics.cs
- _NegoStream.cs
- AlternationConverter.cs
- processwaithandle.cs
- ClientBuildManager.cs
- MouseCaptureWithinProperty.cs
- UrlAuthFailedErrorFormatter.cs
- StyleHelper.cs
- SimpleTextLine.cs
- WebPartUserCapability.cs
- BaseValidator.cs
- TemplateInstanceAttribute.cs
- OrderedDictionaryStateHelper.cs