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
- ColorConverter.cs
- WindowsAuthenticationEventArgs.cs
- DisplayNameAttribute.cs
- ListViewItemSelectionChangedEvent.cs
- FormatterServicesNoSerializableCheck.cs
- ToolTip.cs
- ProtocolException.cs
- BaseParaClient.cs
- BitmapSizeOptions.cs
- HotSpotCollection.cs
- CodeParameterDeclarationExpression.cs
- EventPrivateKey.cs
- EventHandlers.cs
- TokenBasedSet.cs
- ValueTypeFixupInfo.cs
- OptimalBreakSession.cs
- ImmComposition.cs
- GridViewCancelEditEventArgs.cs
- FixedStringLookup.cs
- AbandonedMutexException.cs
- DataGridBeginningEditEventArgs.cs
- GB18030Encoding.cs
- PropertyChangedEventManager.cs
- CreateUserWizard.cs
- JsonDeserializer.cs
- XmlDocumentSerializer.cs
- PanelStyle.cs
- TextServicesCompartment.cs
- HandlerBase.cs
- CFStream.cs
- CacheRequest.cs
- HtmlControlPersistable.cs
- BinaryWriter.cs
- IntSecurity.cs
- HMAC.cs
- UserPreferenceChangedEventArgs.cs
- AuthorizationSection.cs
- EntityDesignerDataSourceView.cs
- PerformanceCountersElement.cs
- EpmAttributeNameBuilder.cs
- IntersectQueryOperator.cs
- ListParagraph.cs
- TypeReference.cs
- SharedUtils.cs
- SubpageParaClient.cs
- RegionIterator.cs
- ToolboxComponentsCreatingEventArgs.cs
- ToReply.cs
- FormViewDeletedEventArgs.cs
- Expander.cs
- SimpleWorkerRequest.cs
- VectorAnimationUsingKeyFrames.cs
- BCLDebug.cs
- CommonRemoteMemoryBlock.cs
- ObjectContextServiceProvider.cs
- SQLGuid.cs
- FixedSOMGroup.cs
- VarRefManager.cs
- XmlSchemaValidator.cs
- AutomationPatternInfo.cs
- XmlArrayAttribute.cs
- XmlSchemaImport.cs
- ObjectToIdCache.cs
- CheckedPointers.cs
- CodeSnippetStatement.cs
- EventOpcode.cs
- CultureData.cs
- ReceiveDesigner.xaml.cs
- XmlQueryType.cs
- MessageSmuggler.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- CodeDirectoryCompiler.cs
- Expr.cs
- DropSourceBehavior.cs
- TCPListener.cs
- HotSpot.cs
- HtmlImageAdapter.cs
- TemplateKey.cs
- Membership.cs
- NumericPagerField.cs
- ConfigXmlSignificantWhitespace.cs
- GridViewDesigner.cs
- StylusTip.cs
- RefreshEventArgs.cs
- StringAnimationBase.cs
- PropertyNames.cs
- MissingManifestResourceException.cs
- PostBackTrigger.cs
- Adorner.cs
- EditCommandColumn.cs
- WebPartsSection.cs
- SecureStringHasher.cs
- InvokeHandlers.cs
- SemaphoreFullException.cs
- COM2ExtendedBrowsingHandler.cs
- SchemaTableOptionalColumn.cs
- LifetimeServices.cs
- UpdatePanelControlTrigger.cs
- DateTimeConverter2.cs
- SystemIPGlobalStatistics.cs