Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- VisualTreeUtils.cs
- HttpCachePolicyElement.cs
- Exceptions.cs
- ConnectionInterfaceCollection.cs
- DrawingGroupDrawingContext.cs
- FixedPosition.cs
- CustomTypeDescriptor.cs
- BamlStream.cs
- Collection.cs
- Internal.cs
- TimestampInformation.cs
- ObjectItemAssemblyLoader.cs
- _CommandStream.cs
- WorkflowExecutor.cs
- UserMapPath.cs
- QilScopedVisitor.cs
- BrowserTree.cs
- NotificationContext.cs
- DataSetMappper.cs
- MetadataItemCollectionFactory.cs
- SamlConditions.cs
- FrameDimension.cs
- TextControlDesigner.cs
- _AcceptOverlappedAsyncResult.cs
- XmlSortKey.cs
- CompiledRegexRunner.cs
- XamlVector3DCollectionSerializer.cs
- ReadOnlyCollection.cs
- XmlSchemaDocumentation.cs
- ServiceNameCollection.cs
- TrackBarRenderer.cs
- BindingExpressionBase.cs
- SamlSerializer.cs
- NoPersistScope.cs
- DomNameTable.cs
- SerializationInfo.cs
- ArgumentOutOfRangeException.cs
- TakeOrSkipWhileQueryOperator.cs
- Utility.cs
- SignatureToken.cs
- HtmlInputSubmit.cs
- SHA256.cs
- MenuRendererClassic.cs
- WorkflowDesigner.cs
- SmiEventSink_DeferedProcessing.cs
- CorruptingExceptionCommon.cs
- MULTI_QI.cs
- XmlEntity.cs
- DataTemplateSelector.cs
- DataSourceViewSchemaConverter.cs
- TrustSection.cs
- DiscoveryClient.cs
- DataGridLinkButton.cs
- CodeIndexerExpression.cs
- ExtensionQuery.cs
- SectionXmlInfo.cs
- ReadOnlyMetadataCollection.cs
- TextServicesHost.cs
- SqlServer2KCompatibilityCheck.cs
- NavigatorInput.cs
- PublisherIdentityPermission.cs
- Positioning.cs
- WinFormsSpinner.cs
- CustomAttribute.cs
- LambdaCompiler.ControlFlow.cs
- ZipIOExtraField.cs
- EntitySqlException.cs
- wgx_commands.cs
- TableChangeProcessor.cs
- Root.cs
- MultipleViewPatternIdentifiers.cs
- DiscreteKeyFrames.cs
- SqlRemoveConstantOrderBy.cs
- SectionRecord.cs
- ColorConverter.cs
- CompilerScopeManager.cs
- SelectedPathEditor.cs
- CommandEventArgs.cs
- XNodeValidator.cs
- RemoveStoryboard.cs
- BindingsCollection.cs
- ExpandableObjectConverter.cs
- ReversePositionQuery.cs
- NumberFunctions.cs
- CollectionViewGroupRoot.cs
- FloaterParagraph.cs
- Tracking.cs
- XmlNodeList.cs
- ThemeConfigurationDialog.cs
- DispatcherOperation.cs
- WebPartHeaderCloseVerb.cs
- ZipPackagePart.cs
- HWStack.cs
- StatusBarPanelClickEvent.cs
- LayoutTable.cs
- WindowsIdentity.cs
- DBPropSet.cs
- TimeoutException.cs
- DbParameterHelper.cs
- RSAOAEPKeyExchangeDeformatter.cs