Code:
/ FX-1434 / FX-1434 / 1.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
- RequestCachingSection.cs
- WorkItem.cs
- CrossSiteScriptingValidation.cs
- DataService.cs
- ToolStripContainer.cs
- ConnectionPointCookie.cs
- FileSecurity.cs
- TextParagraphCache.cs
- SQLResource.cs
- MediaCommands.cs
- ExpressionPrinter.cs
- Size3D.cs
- CancellationHandler.cs
- FlatButtonAppearance.cs
- HttpStaticObjectsCollectionWrapper.cs
- QilChoice.cs
- StylusPoint.cs
- GatewayIPAddressInformationCollection.cs
- HttpListenerRequest.cs
- OptimalTextSource.cs
- RenderCapability.cs
- HttpGetClientProtocol.cs
- ToolStripGripRenderEventArgs.cs
- Substitution.cs
- IpcClientManager.cs
- WebPartEditVerb.cs
- DragCompletedEventArgs.cs
- followingsibling.cs
- TableTextElementCollectionInternal.cs
- CommandExpr.cs
- ExpressionHelper.cs
- InstanceDescriptor.cs
- EtwTrace.cs
- AppearanceEditorPart.cs
- WindowsUpDown.cs
- Constraint.cs
- ItemsPresenter.cs
- _ConnectionGroup.cs
- CreateRefExpr.cs
- DebugInfo.cs
- BasicKeyConstraint.cs
- CodeThrowExceptionStatement.cs
- DependencySource.cs
- XPathEmptyIterator.cs
- HtmlValidationSummaryAdapter.cs
- SynchronizationHandlesCodeDomSerializer.cs
- FixedSOMImage.cs
- ResourcePermissionBase.cs
- DateTimePickerDesigner.cs
- HtmlTableCellCollection.cs
- AssemblyName.cs
- DbMetaDataFactory.cs
- MenuAdapter.cs
- WebPartTransformerCollection.cs
- AmbientEnvironment.cs
- PageTheme.cs
- FunctionCommandText.cs
- DockProviderWrapper.cs
- NativeMethods.cs
- TableParaClient.cs
- mediaeventargs.cs
- StringAnimationUsingKeyFrames.cs
- ServiceDescriptionSerializer.cs
- PathFigureCollection.cs
- TemplatePropertyEntry.cs
- ValidatorCollection.cs
- PaintEvent.cs
- TrackingProfile.cs
- WebPartConnectionsCancelEventArgs.cs
- DataGridColumnEventArgs.cs
- Int16.cs
- HeaderPanel.cs
- XmlSequenceWriter.cs
- SqlDataReaderSmi.cs
- ImportedNamespaceContextItem.cs
- RangeEnumerable.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ControlParameter.cs
- ActivityCodeDomSerializer.cs
- ServiceChannelFactory.cs
- CheckBoxList.cs
- Comparer.cs
- SchemaCollectionCompiler.cs
- FormViewCommandEventArgs.cs
- DBCommand.cs
- VerificationAttribute.cs
- BitConverter.cs
- SynchronousReceiveBehavior.cs
- DataGridViewComboBoxColumnDesigner.cs
- CodeAccessPermission.cs
- SafeProcessHandle.cs
- ObjectCacheHost.cs
- HashStream.cs
- NamedPipeTransportElement.cs
- XmlRawWriter.cs
- XmlDeclaration.cs
- ResourceContainerWrapper.cs
- XmlAttributeCollection.cs
- FileDialogCustomPlaces.cs
- GridViewEditEventArgs.cs