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
- WindowsComboBox.cs
- AliasedSlot.cs
- PeerTransportSecuritySettings.cs
- _RequestCacheProtocol.cs
- WsatConfiguration.cs
- DocumentEventArgs.cs
- UnsafeNativeMethods.cs
- OneWayBindingElement.cs
- StandardBindingOptionalReliableSessionElement.cs
- FileChangesMonitor.cs
- CmsInterop.cs
- TextEditorMouse.cs
- sapiproxy.cs
- DataGridViewTextBoxEditingControl.cs
- XmlComplianceUtil.cs
- PingReply.cs
- DataRowCollection.cs
- XmlDomTextWriter.cs
- Mutex.cs
- AttachedAnnotation.cs
- PersistenceException.cs
- ColumnWidthChangingEvent.cs
- InfoCardTraceRecord.cs
- CheckBoxStandardAdapter.cs
- Helper.cs
- XmlMtomReader.cs
- WorkflowMessageEventHandler.cs
- StateMachineSubscription.cs
- querybuilder.cs
- CryptoProvider.cs
- PixelFormat.cs
- ObjectDataSource.cs
- DocumentSequenceHighlightLayer.cs
- TimelineClockCollection.cs
- DataGridClipboardHelper.cs
- TempFiles.cs
- TemplatePartAttribute.cs
- SignatureGenerator.cs
- JsonDataContract.cs
- CacheDependency.cs
- CustomPopupPlacement.cs
- NameGenerator.cs
- SimpleHandlerBuildProvider.cs
- CapabilitiesPattern.cs
- RawStylusSystemGestureInputReport.cs
- ZipArchive.cs
- ProjectionCamera.cs
- BrushProxy.cs
- RowsCopiedEventArgs.cs
- ContextMarshalException.cs
- DetailsViewPagerRow.cs
- xmlglyphRunInfo.cs
- DataTemplateKey.cs
- TargetException.cs
- DataObjectEventArgs.cs
- ListSortDescriptionCollection.cs
- DependencyStoreSurrogate.cs
- IntellisenseTextBox.designer.cs
- RemotingException.cs
- TransportConfigurationTypeElementCollection.cs
- DynamicRendererThreadManager.cs
- UndoEngine.cs
- SoapObjectWriter.cs
- HtmlElementEventArgs.cs
- PreservationFileWriter.cs
- DesignerHierarchicalDataSourceView.cs
- DomainConstraint.cs
- CacheForPrimitiveTypes.cs
- BrowserCapabilitiesCodeGenerator.cs
- BaseConfigurationRecord.cs
- ScrollPattern.cs
- ParameterDataSourceExpression.cs
- CommandHelper.cs
- SQLUtility.cs
- AggregationMinMaxHelpers.cs
- MessageVersion.cs
- CapabilitiesState.cs
- TimeSpanFormat.cs
- ServiceProviders.cs
- AuthenticatedStream.cs
- HwndKeyboardInputProvider.cs
- TextElement.cs
- DataRecord.cs
- ItemMap.cs
- SqlCacheDependencyDatabaseCollection.cs
- Calendar.cs
- SchemaComplexType.cs
- ControlPropertyNameConverter.cs
- ASCIIEncoding.cs
- BadImageFormatException.cs
- InputScopeConverter.cs
- PreservationFileWriter.cs
- HMACSHA256.cs
- EditableLabelControl.cs
- NativeActivityContext.cs
- StorageEntityTypeMapping.cs
- Size.cs
- QilStrConcat.cs
- DrawingImage.cs
- ItemCollection.cs