Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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++); } } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Enumerable.cs
- Privilege.cs
- DataGridViewTextBoxCell.cs
- UIElementIsland.cs
- BoolExpr.cs
- PointAnimation.cs
- XsltOutput.cs
- StorageBasedPackageProperties.cs
- MaskedTextProvider.cs
- TableLayoutRowStyleCollection.cs
- ChannelManager.cs
- SizeChangedEventArgs.cs
- KeyNameIdentifierClause.cs
- SqlConnectionStringBuilder.cs
- ButtonStandardAdapter.cs
- HtmlCommandAdapter.cs
- Keyboard.cs
- UnhandledExceptionEventArgs.cs
- TextHidden.cs
- SoapRpcMethodAttribute.cs
- unitconverter.cs
- SQLDecimalStorage.cs
- VisualCollection.cs
- WindowsPen.cs
- EntitySetBaseCollection.cs
- SHA256Managed.cs
- AccessDataSourceView.cs
- DBConnectionString.cs
- TCPClient.cs
- FormatSettings.cs
- ClusterRegistryConfigurationProvider.cs
- XmlNamespaceMapping.cs
- LineInfo.cs
- Label.cs
- ProjectionRewriter.cs
- Matrix3D.cs
- CatalogZoneDesigner.cs
- PageThemeCodeDomTreeGenerator.cs
- BaseValidator.cs
- ProtocolsConfigurationHandler.cs
- XmlSchemas.cs
- StylusPointPropertyInfo.cs
- DataGridViewLayoutData.cs
- ConstructorExpr.cs
- ConcurrentDictionary.cs
- DiscoveryCallbackBehavior.cs
- StorageEntitySetMapping.cs
- MLangCodePageEncoding.cs
- NoClickablePointException.cs
- DesignerActionVerbList.cs
- GridViewAutoFormat.cs
- Queue.cs
- FormViewPageEventArgs.cs
- IgnorePropertiesAttribute.cs
- DbBuffer.cs
- DataGridViewRowsRemovedEventArgs.cs
- xsdvalidator.cs
- DataRowComparer.cs
- AtomMaterializer.cs
- SymmetricSecurityProtocolFactory.cs
- LineGeometry.cs
- HierarchicalDataBoundControl.cs
- ReachFixedPageSerializerAsync.cs
- DataGridViewCellLinkedList.cs
- StreamWriter.cs
- LinkDescriptor.cs
- ReflectPropertyDescriptor.cs
- HostedAspNetEnvironment.cs
- InputMethodStateChangeEventArgs.cs
- ImageUrlEditor.cs
- SemanticValue.cs
- MarginCollapsingState.cs
- DataObjectAttribute.cs
- PageParser.cs
- PageContentCollection.cs
- RuleProcessor.cs
- LocalTransaction.cs
- MetabaseSettingsIis7.cs
- InkPresenterAutomationPeer.cs
- StringCollectionEditor.cs
- ButtonRenderer.cs
- DataGridViewCellFormattingEventArgs.cs
- GlyphElement.cs
- JournalEntryStack.cs
- ClientSettings.cs
- RelationshipWrapper.cs
- ListViewItem.cs
- SrgsSubset.cs
- Effect.cs
- Regex.cs
- ListView.cs
- StylusPointProperties.cs
- TraceInternal.cs
- _UncName.cs
- _DigestClient.cs
- GlobalEventManager.cs
- OpenFileDialog.cs
- AnchorEditor.cs
- BoundColumn.cs
- PasswordPropertyTextAttribute.cs