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
- ConfigPathUtility.cs
- CatalogZoneBase.cs
- PrintingPermissionAttribute.cs
- SequentialOutput.cs
- ComboBoxRenderer.cs
- MessageQueuePermissionEntry.cs
- SimpleBitVector32.cs
- SweepDirectionValidation.cs
- CodeLabeledStatement.cs
- CopyOnWriteList.cs
- MULTI_QI.cs
- Codec.cs
- WebScriptEnablingBehavior.cs
- XmlMembersMapping.cs
- Binding.cs
- RoleBoolean.cs
- DataGridCheckBoxColumn.cs
- CompilationUtil.cs
- PropertyExpression.cs
- DesignerProperties.cs
- ApplicationException.cs
- SelectionEditor.cs
- KeyedCollection.cs
- GacUtil.cs
- ListViewDeleteEventArgs.cs
- PropertyTabAttribute.cs
- ISAPIWorkerRequest.cs
- TextBoxAutoCompleteSourceConverter.cs
- Comparer.cs
- DocComment.cs
- SeverityFilter.cs
- Symbol.cs
- VectorCollectionValueSerializer.cs
- AccessedThroughPropertyAttribute.cs
- httpapplicationstate.cs
- Root.cs
- PageRanges.cs
- querybuilder.cs
- HtmlHistory.cs
- BoundsDrawingContextWalker.cs
- UrlMappingsSection.cs
- CodeDomLoader.cs
- MetabaseServerConfig.cs
- TimeSpanSecondsConverter.cs
- NonParentingControl.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ProcessThread.cs
- TextTreeRootNode.cs
- CodeFieldReferenceExpression.cs
- PageThemeParser.cs
- XPathNode.cs
- DrawingState.cs
- EmptyStringExpandableObjectConverter.cs
- ConfigUtil.cs
- GridViewColumnHeaderAutomationPeer.cs
- DeferredSelectedIndexReference.cs
- DBCommandBuilder.cs
- infer.cs
- AdornerLayer.cs
- ObjRef.cs
- PermissionSetEnumerator.cs
- CookielessHelper.cs
- OdbcFactory.cs
- DataTableNewRowEvent.cs
- _LocalDataStoreMgr.cs
- SelectionProviderWrapper.cs
- StylusPoint.cs
- Fonts.cs
- ReadOnlyAttribute.cs
- VirtualPathUtility.cs
- ADMembershipProvider.cs
- DataList.cs
- ConditionalWeakTable.cs
- DataGridViewAddColumnDialog.cs
- GlobalProxySelection.cs
- SqlVersion.cs
- GuidelineCollection.cs
- ProfessionalColorTable.cs
- HttpClientCertificate.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- GeometryConverter.cs
- ZipPackagePart.cs
- RuleSetCollection.cs
- XPathMessageContext.cs
- TypeUtil.cs
- XmlNamedNodeMap.cs
- FactoryMaker.cs
- SspiSecurityTokenProvider.cs
- TranslateTransform.cs
- CornerRadius.cs
- AnimatedTypeHelpers.cs
- GroupLabel.cs
- Brushes.cs
- EmptyImpersonationContext.cs
- ICollection.cs
- SetStoryboardSpeedRatio.cs
- SystemIPInterfaceProperties.cs
- SplineQuaternionKeyFrame.cs
- TimeSpanSecondsConverter.cs
- ControlBuilder.cs