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
- CheckedPointers.cs
- BitmapFrameEncode.cs
- HttpListenerTimeoutManager.cs
- ZipIOLocalFileBlock.cs
- HealthMonitoringSectionHelper.cs
- AuthenticatedStream.cs
- ScrollEvent.cs
- XPathQilFactory.cs
- SecuritySessionSecurityTokenProvider.cs
- DrawToolTipEventArgs.cs
- SafeNativeMethods.cs
- DoubleIndependentAnimationStorage.cs
- CallbackHandler.cs
- RegistrySecurity.cs
- XmlEncoding.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ContextProperty.cs
- AttributeEmitter.cs
- PageBreakRecord.cs
- SiteMap.cs
- CookieProtection.cs
- DomainConstraint.cs
- UnsafeNativeMethods.cs
- Stackframe.cs
- ConfigurationPermission.cs
- LoadWorkflowByInstanceKeyCommand.cs
- FreezableOperations.cs
- LinqDataSourceContextData.cs
- RotateTransform3D.cs
- DbProviderServices.cs
- StickyNote.cs
- TypeDescriptionProvider.cs
- DesignerAttribute.cs
- InputScopeAttribute.cs
- ResolveInfo.cs
- IsolationInterop.cs
- RelatedCurrencyManager.cs
- SrgsRuleRef.cs
- SchemaObjectWriter.cs
- UIElementParaClient.cs
- ParentUndoUnit.cs
- GridEntryCollection.cs
- RenderOptions.cs
- XPathItem.cs
- CustomAttributeSerializer.cs
- Accessible.cs
- VisualBasicValue.cs
- FontInfo.cs
- HtmlElementEventArgs.cs
- WebPartEventArgs.cs
- ChangesetResponse.cs
- PropertyInformation.cs
- BrowserDefinitionCollection.cs
- FontConverter.cs
- XhtmlBasicListAdapter.cs
- UnsafeNativeMethods.cs
- TextEffect.cs
- PngBitmapEncoder.cs
- ZoneButton.cs
- ResXDataNode.cs
- DictionaryItemsCollection.cs
- VerificationAttribute.cs
- ElementAction.cs
- GraphicsContext.cs
- StaticTextPointer.cs
- ChannelTraceRecord.cs
- DecimalStorage.cs
- WSDualHttpSecurityMode.cs
- VerticalAlignConverter.cs
- ParameterModifier.cs
- ObjectDataSourceMethodEventArgs.cs
- SystemWebCachingSectionGroup.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- SingleObjectCollection.cs
- arc.cs
- SqlWebEventProvider.cs
- ViewSimplifier.cs
- ByteConverter.cs
- MulticastOption.cs
- BaseCodePageEncoding.cs
- WebScriptEnablingElement.cs
- ArithmeticLiteral.cs
- AdjustableArrowCap.cs
- OleCmdHelper.cs
- PerformanceCounterPermissionEntry.cs
- DrawListViewColumnHeaderEventArgs.cs
- RegexRunner.cs
- CardSpaceSelector.cs
- WsdlInspector.cs
- TabControlEvent.cs
- UnicastIPAddressInformationCollection.cs
- _ScatterGatherBuffers.cs
- DiagnosticTrace.cs
- XPathCompileException.cs
- FieldDescriptor.cs
- TabletDevice.cs
- HttpRuntime.cs
- OracleParameter.cs
- SignatureHelper.cs
- FileResponseElement.cs