Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / ColumnCollection.cs / 1 / ColumnCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.Web.UI;
using System.Security.Permissions;
///
/// Represents the collection of columns to be displayed in
/// a
/// control.
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataGridColumnCollection : ICollection, IStateManager {
private DataGrid owner;
private ArrayList columns;
private bool marked;
///
/// Initializes a new instance of class.
///
public DataGridColumnCollection(DataGrid owner, ArrayList columns) {
this.owner = owner;
this.columns = columns;
}
///
/// Gets the number of columns in the collection. This property is read-only.
///
[
Browsable(false)
]
public int Count {
get {
return columns.Count;
}
}
///
/// Gets a value that specifies whether items in the can be
/// modified. This property is read-only.
///
[
Browsable(false)
]
public bool IsReadOnly {
get {
return false;
}
}
///
/// Gets a value that indicates whether the is thread-safe. This property is read-only.
///
[
Browsable(false)
]
public bool IsSynchronized {
get {
return false;
}
}
///
/// Gets the object used to synchronize access to the collection. This property is read-only.
///
[
Browsable(false)
]
public Object SyncRoot {
get {
return this;
}
}
///
/// Gets a at the specified index in the
/// collection.
///
[
Browsable(false)
]
public DataGridColumn this[int index] {
get {
return (DataGridColumn)columns[index];
}
}
///
/// Appends a to the collection.
///
public void Add(DataGridColumn column) {
AddAt(-1, column);
}
///
/// Inserts a to the collection
/// at the specified index.
///
public void AddAt(int index, DataGridColumn column) {
if (column == null) {
throw new ArgumentNullException("column");
}
if (index == -1) {
columns.Add(column);
}
else {
columns.Insert(index, column);
}
column.SetOwner(owner);
if (marked)
((IStateManager)column).TrackViewState();
OnColumnsChanged();
}
///
/// Empties the collection of all objects.
///
public void Clear() {
columns.Clear();
OnColumnsChanged();
}
///
/// Copies the contents of the entire collection into an appending at
/// the specified index of the .
///
public void CopyTo(Array array, int index) {
if (array == null) {
throw new ArgumentNullException("array");
}
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
/// Creates an enumerator for the used to iterate through the collection.
///
public IEnumerator GetEnumerator() {
return columns.GetEnumerator();
}
///
/// Returns the index of the first occurrence of a value in a .
///
public int IndexOf(DataGridColumn column) {
if (column != null) {
return columns.IndexOf(column);
}
return -1;
}
///
///
private void OnColumnsChanged() {
if (owner != null) {
owner.OnColumnsChanged();
}
}
///
/// Removes a from the collection at the specified
/// index.
///
public void RemoveAt(int index) {
if ((index >= 0) && (index < Count)) {
columns.RemoveAt(index);
OnColumnsChanged();
}
else {
throw new ArgumentOutOfRangeException("index");
}
}
///
/// Removes the specified from the collection.
///
public void Remove(DataGridColumn column) {
int index = IndexOf(column);
if (index >= 0) {
RemoveAt(index);
}
}
///
///
/// Return true if tracking state changes.
///
bool IStateManager.IsTrackingViewState {
get {
return marked;
}
}
///
///
/// Load previously saved state.
///
void IStateManager.LoadViewState(object savedState) {
if (savedState != null) {
object[] columnsState = (object[])savedState;
if (columnsState.Length == columns.Count) {
for (int i = 0; i < columnsState.Length; i++) {
if (columnsState[i] != null) {
((IStateManager)columns[i]).LoadViewState(columnsState[i]);
}
}
}
}
}
///
///
/// Start tracking state changes.
///
void IStateManager.TrackViewState() {
marked = true;
int columnCount = columns.Count;
for (int i = 0; i < columnCount; i++) {
((IStateManager)columns[i]).TrackViewState();
}
}
///
///
/// Return object containing state changes.
///
object IStateManager.SaveViewState() {
int columnCount = columns.Count;
object[] columnsState = new object[columnCount];
bool savedState = false;
for (int i = 0; i < columnCount; i++) {
columnsState[i] = ((IStateManager)columns[i]).SaveViewState();
if (columnsState[i] != null)
savedState = true;
}
return savedState ? columnsState : null;
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AutomationPropertyInfo.cs
- PrePostDescendentsWalker.cs
- PropertyCollection.cs
- Matrix3D.cs
- _TransmitFileOverlappedAsyncResult.cs
- ConnectionPool.cs
- BinaryNode.cs
- SoapHeaderException.cs
- ValueType.cs
- WebPartEditorCancelVerb.cs
- CommentEmitter.cs
- FragmentNavigationEventArgs.cs
- CustomBindingCollectionElement.cs
- BindingSource.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- PropertyEntry.cs
- ZoneMembershipCondition.cs
- VisualBrush.cs
- HttpWebRequest.cs
- Attributes.cs
- SqlEnums.cs
- WebPartPersonalization.cs
- AuthenticationException.cs
- SubstitutionDesigner.cs
- SqlIdentifier.cs
- DescendantBaseQuery.cs
- RowBinding.cs
- ObjectViewQueryResultData.cs
- EpmSyndicationContentSerializer.cs
- PowerStatus.cs
- SamlSerializer.cs
- MachineKey.cs
- AliasedSlot.cs
- HostProtectionPermission.cs
- TypeElementCollection.cs
- RadioButtonRenderer.cs
- RichTextBoxAutomationPeer.cs
- UnionCodeGroup.cs
- XmlArrayItemAttribute.cs
- EntityDesignerBuildProvider.cs
- ProcessThread.cs
- DependencyPropertyKind.cs
- ProcessThreadCollection.cs
- RemotingSurrogateSelector.cs
- CounterSample.cs
- CacheMemory.cs
- ExpressionNode.cs
- MessageDecoder.cs
- DataSvcMapFile.cs
- TextSearch.cs
- AssertFilter.cs
- Aggregates.cs
- BookmarkManager.cs
- ObjectRef.cs
- ReferencedAssembly.cs
- MultiByteCodec.cs
- Privilege.cs
- ListParagraph.cs
- HttpWebRequestElement.cs
- ReadOnlyAttribute.cs
- PageHandlerFactory.cs
- DivideByZeroException.cs
- FrugalMap.cs
- ProtocolsSection.cs
- GridViewRowEventArgs.cs
- MaterialGroup.cs
- AttributeSetAction.cs
- SQLInt16Storage.cs
- BamlRecords.cs
- TextMarkerSource.cs
- CqlIdentifiers.cs
- ByteArrayHelperWithString.cs
- StructureChangedEventArgs.cs
- wmiprovider.cs
- AsyncPostBackTrigger.cs
- TcpChannelHelper.cs
- WebHttpDispatchOperationSelectorData.cs
- HttpStreamXmlDictionaryWriter.cs
- WebPartConnectionsCancelEventArgs.cs
- HMACSHA512.cs
- ComAwareEventInfo.cs
- _PooledStream.cs
- DataGridTextColumn.cs
- TextHidden.cs
- ChannelSinkStacks.cs
- XPathDocument.cs
- XMLUtil.cs
- FormViewRow.cs
- FixedElement.cs
- Single.cs
- Int16Storage.cs
- ControlPropertyNameConverter.cs
- Vector3DKeyFrameCollection.cs
- HtmlShim.cs
- BitmapDownload.cs
- SmtpReplyReaderFactory.cs
- base64Transforms.cs
- ManipulationCompletedEventArgs.cs
- TextTreeUndo.cs
- PrimarySelectionGlyph.cs