Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ViewBase.cs
- ToolStripDropDownClosedEventArgs.cs
- WindowsListViewItemCheckBox.cs
- PageHandlerFactory.cs
- TextElementEnumerator.cs
- baseaxisquery.cs
- RuntimeResourceSet.cs
- _ServiceNameStore.cs
- VectorAnimationBase.cs
- GuidelineCollection.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- DnsEndpointIdentity.cs
- FormViewInsertedEventArgs.cs
- OperationPickerDialog.designer.cs
- ProviderUtil.cs
- SettingsPropertyIsReadOnlyException.cs
- XmlComment.cs
- BitmapScalingModeValidation.cs
- ProcessHostServerConfig.cs
- SourceFilter.cs
- WebHttpSecurity.cs
- SqlEnums.cs
- ObjectPersistData.cs
- DataGridLinkButton.cs
- ProtectedConfigurationProviderCollection.cs
- HtmlHead.cs
- Span.cs
- InertiaExpansionBehavior.cs
- StorageFunctionMapping.cs
- DetailsViewCommandEventArgs.cs
- _HTTPDateParse.cs
- ScrollBar.cs
- Bezier.cs
- WebPermission.cs
- SubtreeProcessor.cs
- Barrier.cs
- TemplateBindingExpressionConverter.cs
- IgnoreDataMemberAttribute.cs
- DayRenderEvent.cs
- SemanticResultKey.cs
- ToolBarTray.cs
- RepeaterItemCollection.cs
- CodeStatementCollection.cs
- SpecialTypeDataContract.cs
- StylusButtonEventArgs.cs
- TabPanel.cs
- TdsParserSessionPool.cs
- SettingsBase.cs
- ControlEvent.cs
- Vars.cs
- ObjectCloneHelper.cs
- SuppressIldasmAttribute.cs
- EffectiveValueEntry.cs
- StateRuntime.cs
- FormsAuthenticationModule.cs
- SqlClientFactory.cs
- NTAccount.cs
- PassportPrincipal.cs
- QilInvokeLateBound.cs
- Win32SafeHandles.cs
- Rotation3D.cs
- SqlClientWrapperSmiStreamChars.cs
- SendMailErrorEventArgs.cs
- GeneralTransformGroup.cs
- QueueProcessor.cs
- Stream.cs
- AspNetSynchronizationContext.cs
- CompositeActivityCodeGenerator.cs
- InvokerUtil.cs
- SchemaType.cs
- DialogResultConverter.cs
- BCLDebug.cs
- x509store.cs
- BaseTemplateBuildProvider.cs
- ResourceExpression.cs
- ClearTypeHintValidation.cs
- BindingRestrictions.cs
- TemplateColumn.cs
- TableProviderWrapper.cs
- RouteParameter.cs
- IisHelper.cs
- RequestResizeEvent.cs
- Util.cs
- ToolBar.cs
- CommandID.cs
- TwoPhaseCommit.cs
- Rule.cs
- ImageClickEventArgs.cs
- TimeSpanStorage.cs
- StylusEventArgs.cs
- TextRangeBase.cs
- EntityDataSourceState.cs
- Screen.cs
- OdbcRowUpdatingEvent.cs
- ProcessRequestAsyncResult.cs
- MailAddressCollection.cs
- DataGridComponentEditor.cs
- FormattedTextSymbols.cs
- HitTestDrawingContextWalker.cs
- _BufferOffsetSize.cs