Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- ActivityTypeResolver.xaml.cs
- DataControlFieldCollection.cs
- ViewKeyConstraint.cs
- Enum.cs
- localization.cs
- SaveFileDialog.cs
- LinqDataSourceValidationException.cs
- DataGridViewCellValidatingEventArgs.cs
- WebPartsPersonalization.cs
- CanonicalizationDriver.cs
- VerificationAttribute.cs
- XmlNullResolver.cs
- FileRegion.cs
- SettingsPropertyValue.cs
- DesignerSerializerAttribute.cs
- DaylightTime.cs
- HttpWebRequestElement.cs
- SetIndexBinder.cs
- EditorZoneBase.cs
- ComplexBindingPropertiesAttribute.cs
- Vector3dCollection.cs
- NewItemsContextMenuStrip.cs
- InvokeBinder.cs
- DataControlPagerLinkButton.cs
- WorkflowOwnerAsyncResult.cs
- BezierSegment.cs
- FontWeightConverter.cs
- ClientTargetCollection.cs
- WebColorConverter.cs
- TreeViewImageIndexConverter.cs
- PixelFormat.cs
- RadioButtonList.cs
- ConversionHelper.cs
- XmlSchemaFacet.cs
- PowerStatus.cs
- TypeConverterHelper.cs
- XPathDescendantIterator.cs
- basevalidator.cs
- ExtensionSimplifierMarkupObject.cs
- Membership.cs
- AsyncPostBackTrigger.cs
- SoapFormatterSinks.cs
- TypeInitializationException.cs
- LabelAutomationPeer.cs
- PreservationFileReader.cs
- SctClaimSerializer.cs
- SiteMapNode.cs
- FontDifferentiator.cs
- RbTree.cs
- RectAnimationClockResource.cs
- CodeVariableReferenceExpression.cs
- FileCodeGroup.cs
- FrameAutomationPeer.cs
- TransformProviderWrapper.cs
- SoapAttributes.cs
- ColorDialog.cs
- MatrixCamera.cs
- RuntimeWrappedException.cs
- WindowAutomationPeer.cs
- WorkflowRuntimeEndpoint.cs
- Line.cs
- mediapermission.cs
- OSFeature.cs
- WindowsToolbar.cs
- ProfilePropertySettingsCollection.cs
- CodeIterationStatement.cs
- TextEditorMouse.cs
- ViewStateModeByIdAttribute.cs
- InkPresenterAutomationPeer.cs
- EntityViewGenerationAttribute.cs
- LookupBindingPropertiesAttribute.cs
- CacheEntry.cs
- ObjectStateManagerMetadata.cs
- SaveFileDialog.cs
- PageBuildProvider.cs
- connectionpool.cs
- __Error.cs
- TraceEventCache.cs
- TimerTable.cs
- TextBoxView.cs
- LinqDataSourceView.cs
- ButtonFlatAdapter.cs
- BoundField.cs
- WebPartDisplayModeEventArgs.cs
- SetterBaseCollection.cs
- COM2TypeInfoProcessor.cs
- Guid.cs
- SqlDuplicator.cs
- Vector.cs
- RawStylusInput.cs
- VectorCollection.cs
- DataGridViewSelectedCellCollection.cs
- DrawListViewSubItemEventArgs.cs
- ColorTransformHelper.cs
- InternalConfigRoot.cs
- AsymmetricSignatureDeformatter.cs
- NameScopePropertyAttribute.cs
- FontWeights.cs
- WebPartHelpVerb.cs
- AnnotationAdorner.cs