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
- HttpCookie.cs
- InkCanvasSelectionAdorner.cs
- SequentialActivityDesigner.cs
- CheckPair.cs
- Condition.cs
- RegexCompiler.cs
- DesignerSerializerAttribute.cs
- ReadOnlyNameValueCollection.cs
- ConfigurationValidatorAttribute.cs
- ComponentEditorForm.cs
- WebBrowserContainer.cs
- METAHEADER.cs
- ScrollItemPattern.cs
- ToolStripButton.cs
- SoapTypeAttribute.cs
- dtdvalidator.cs
- AmbientLight.cs
- ExclusiveCanonicalizationTransform.cs
- httpserverutility.cs
- CompressionTransform.cs
- ToolboxComponentsCreatingEventArgs.cs
- X509Certificate2Collection.cs
- CallContext.cs
- ConfigurationCollectionAttribute.cs
- ProtocolsSection.cs
- NavigationService.cs
- VScrollBar.cs
- RemoteWebConfigurationHostServer.cs
- SingleAnimationUsingKeyFrames.cs
- SecurityContext.cs
- WorkflowWebHostingModule.cs
- OleDbMetaDataFactory.cs
- Size3D.cs
- DPCustomTypeDescriptor.cs
- DBSqlParserTable.cs
- mediaeventshelper.cs
- EncodedStreamFactory.cs
- OdbcTransaction.cs
- PaintValueEventArgs.cs
- WindowsTooltip.cs
- securestring.cs
- TdsParserHelperClasses.cs
- ComboBoxAutomationPeer.cs
- ColorTranslator.cs
- Delegate.cs
- PathFigure.cs
- CompilerTypeWithParams.cs
- HttpPostedFileWrapper.cs
- EdmToObjectNamespaceMap.cs
- QilLoop.cs
- UpdateException.cs
- NotConverter.cs
- DesignOnlyAttribute.cs
- ViewgenContext.cs
- UInt16Storage.cs
- NetworkAddressChange.cs
- List.cs
- PackageStore.cs
- Positioning.cs
- HierarchicalDataTemplate.cs
- localization.cs
- baseaxisquery.cs
- FlowDocumentPage.cs
- SoapAttributeOverrides.cs
- ScriptReferenceEventArgs.cs
- UpdatePanelControlTrigger.cs
- DbDataReader.cs
- TheQuery.cs
- EntityCommandDefinition.cs
- HttpHandlerActionCollection.cs
- FileLoadException.cs
- DataGridRow.cs
- DataGridRow.cs
- MethodSet.cs
- ProviderSettings.cs
- IndentedWriter.cs
- ArrangedElementCollection.cs
- CatalogPartCollection.cs
- ProfileGroupSettings.cs
- EmissiveMaterial.cs
- ConstructorNeedsTagAttribute.cs
- MultiAsyncResult.cs
- TreeIterator.cs
- TypeResolvingOptionsAttribute.cs
- Environment.cs
- UnrecognizedAssertionsBindingElement.cs
- ToolboxItemAttribute.cs
- WebConfigurationManager.cs
- SatelliteContractVersionAttribute.cs
- ToolStripArrowRenderEventArgs.cs
- ClockGroup.cs
- WaitHandleCannotBeOpenedException.cs
- SqlDataSourceQueryConverter.cs
- XamlSerializerUtil.cs
- RequestFactory.cs
- TableLayoutStyle.cs
- ProcessThreadCollection.cs
- DataControlFieldsEditor.cs
- PngBitmapEncoder.cs
- PenLineJoinValidation.cs