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
- CustomPopupPlacement.cs
- EntityConnectionStringBuilder.cs
- TypedReference.cs
- SqlDataReaderSmi.cs
- DesignerVerbCollection.cs
- EventData.cs
- UnsafeNativeMethods.cs
- XmlSchemaComplexContentRestriction.cs
- MouseActionValueSerializer.cs
- Workspace.cs
- ImageAnimator.cs
- PerfCounterSection.cs
- TransactionScope.cs
- StaticFileHandler.cs
- DropShadowEffect.cs
- RegexNode.cs
- FontResourceCache.cs
- ProtocolViolationException.cs
- SignatureToken.cs
- HtmlCommandAdapter.cs
- AdapterUtil.cs
- TextParagraphCache.cs
- TrackingServices.cs
- Point4D.cs
- InProcStateClientManager.cs
- Comparer.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- PeerDuplexChannel.cs
- AccessText.cs
- WebPartConnectionsEventArgs.cs
- LowerCaseStringConverter.cs
- CustomAttribute.cs
- EntryIndex.cs
- Rotation3DAnimation.cs
- LongValidator.cs
- RewritingPass.cs
- TimeoutTimer.cs
- Number.cs
- BufferedStream.cs
- StandardOleMarshalObject.cs
- ListViewItem.cs
- RightsManagementPermission.cs
- SharedPerformanceCounter.cs
- WriterOutput.cs
- BlurBitmapEffect.cs
- SystemShuttingDownException.cs
- ManagementEventWatcher.cs
- Type.cs
- ImageBrush.cs
- Matrix3D.cs
- ToolBarButton.cs
- AssociationTypeEmitter.cs
- _LoggingObject.cs
- QuaternionRotation3D.cs
- ViewStateAttachedPropertyFeature.cs
- addressfiltermode.cs
- Message.cs
- DoubleStorage.cs
- webbrowsersite.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- CodeMethodReturnStatement.cs
- FrameAutomationPeer.cs
- SerializerWriterEventHandlers.cs
- mediaclock.cs
- QuaternionAnimation.cs
- CodeExporter.cs
- AuthenticationSection.cs
- DataGridViewImageColumn.cs
- VideoDrawing.cs
- ProcessInputEventArgs.cs
- SecurityUtils.cs
- TableFieldsEditor.cs
- RenderData.cs
- MainMenu.cs
- PersistChildrenAttribute.cs
- PriorityBinding.cs
- MetadataArtifactLoaderFile.cs
- TrustLevel.cs
- MetadataPropertyAttribute.cs
- XmlQueryType.cs
- SafeBitVector32.cs
- CacheMode.cs
- KeyTime.cs
- PasswordRecovery.cs
- ConstructorBuilder.cs
- ToolBarOverflowPanel.cs
- EdmItemCollection.OcAssemblyCache.cs
- OutputScope.cs
- PropertyMapper.cs
- Win32.cs
- HttpSocketManager.cs
- TemplateBindingExtensionConverter.cs
- OverflowException.cs
- X509WindowsSecurityToken.cs
- GridViewRowPresenter.cs
- Barrier.cs
- StringComparer.cs
- FormParameter.cs
- XmlCharCheckingReader.cs
- CachedFontFamily.cs