⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupitemcollection.cs

📁 ASP中web自定义控件的使用源码及说明文档
💻 CS
字号:
using System;
using System.Collections;
using System.Web.UI;

namespace Bestcomy.Web.UI.WebControls
{
	/// <summary>
	/// 
	/// </summary>
	public sealed class GroupItemCollection : IList, ICollection, IEnumerable, IStateManager
	{
		private ArrayList _items = new ArrayList();
		private bool _IsTrackingViewState = false;

		public GroupItemCollection()
		{
		}

		public void Add(string text)
		{
			this.Add(new GroupItem(text));
		}

		public void Add(GroupItem item)
		{
			this._items.Add(item);
		}

		public void AddRange(GroupItem[] items)
		{
			if (items == null)
			{
				throw new ArgumentNullException("items");
			}
			GroupItem[] itemArray1 = items;
			for (int num1 = 0; num1 < itemArray1.Length; num1++)
			{
				GroupItem item1 = itemArray1[num1];
				this.Add(item1);
			}
		}

		public void Clear()
		{
			this._items.Clear();
		}

		public bool Contains(GroupItem item)
		{
			return this._items.Contains(item);
		}

		public void CopyTo(Array array, int index)
		{
			this._items.CopyTo(array, index);
		}

		public int IndexOf(GroupItem item)
		{
			return this._items.IndexOf(item);
		}

		public void Insert(int index, string item)
		{
			this.Insert(index, new GroupItem(item));
		}

		public void Insert(int index, GroupItem item)
		{
			this._items.Insert(index, item);
		}

		public void Remove(string item)
		{
			int num1 = this.IndexOf(new GroupItem(item));
			if (num1 >= 0)
			{
				this.RemoveAt(num1);
			}
		}

		public void Remove(GroupItem item)
		{
			int num1 = this.IndexOf(item);
			if (num1 >= 0)
			{
				this.RemoveAt(num1);
			}
		}

		public void RemoveAt(int index)
		{
			this._items.RemoveAt(index);
		}

		internal int FindByText(string text)
		{
			int idx = -1;
			for(int i=0; i<this.Count; i++)
			{
				if(string.Compare(this[i].Label,text,true)==0)
					return i;
			}
			return idx;
		}

		public int Capacity
		{
			get
			{
				return this._items.Capacity;
			}
			set
			{
				this._items.Capacity = value;
			}
		}

		public int Count
		{
			get
			{
				return this._items.Count;
			}
		}

		public bool IsReadOnly
		{
			get
			{
				return this._items.IsReadOnly;
			}
		}

		public bool IsSynchronized
		{
			get
			{
				return this._items.IsSynchronized;
			}
		}

		public GroupItem this[int index]
		{
			get
			{
				return (GroupItem)this._items[index];
			}
			set
			{
				this._items[index] = value;
			}
		}

		public object SyncRoot
		{
			get
			{
				return this;
			}
		}

		#region IList members

		bool IList.IsReadOnly
		{
			get
			{
				return this._items.IsReadOnly;
			}
		}

		object IList.this[int index]
		{
			get
			{
				return this._items[index];
			}
			set
			{
				this._items[index] = value;
			}
		}

		void IList.RemoveAt(int index)
		{
			this._items.RemoveAt(index);
		}

		void IList.Insert(int index, object value)
		{
			this._items.Insert(index, value);
		}

		void IList.Remove(object value)
		{
			this._items.Remove(value);
		}

		bool IList.Contains(object value)
		{
			return this._items.Contains(value);
		}

		void IList.Clear()
		{
			this._items.Clear();
		}

		int IList.IndexOf(object value)
		{
			return this._items.IndexOf(value);
		}

		int IList.Add(object value)
		{
			return this._items.Add(value);
		}

		bool IList.IsFixedSize
		{
			get
			{
				return this._items.IsFixedSize;
			}
		}

		#endregion

		#region ICollection members

		bool ICollection.IsSynchronized
		{
			get
			{
				return this._items.IsSynchronized;
			}
		}

		int ICollection.Count
		{
			get
			{
				return this._items.Count;
			}
		}

		void ICollection.CopyTo(Array array, int index)
		{
			this._items.CopyTo(array,index);
		}

		object ICollection.SyncRoot
		{
			get
			{
				return this._items.SyncRoot;
			}
		}

		#endregion

		#region IEnumerable members

		public IEnumerator GetEnumerator()
		{
			return this._items.GetEnumerator();
		}

		#endregion

		#region IStateManager members

		public void TrackViewState()
		{
			_IsTrackingViewState = true;
			for(int i=0; i < this.Count; i++)
				((IStateManager)this[i]).TrackViewState();
		}

		public bool IsTrackingViewState
		{
			get
			{
				return _IsTrackingViewState;
			}
		}

		public object SaveViewState()
		{
			ArrayList list1 = new ArrayList();
			ArrayList list2 = new ArrayList();
			for (int num3 = 0; num3 < this.Count; num3++)
			{
				object obj1 = ((IStateManager)this[num3]).SaveViewState();
				if (obj1 != null)
				{
					list1.Add(num3);
					list2.Add(obj1);
				}
			}
			if (list1.Count > 0)
			{
				return new Pair(list1, list2);
			}
			return null;
		}

		public void LoadViewState(object state)
		{
			if (state == null)
			{
				return;
			}
			if (state is Pair)
			{
				Pair pair1 = (Pair) state;
				ArrayList list1 = (ArrayList) pair1.First;
				ArrayList list2 = (ArrayList) pair1.Second;
				for (int num1 = 0; num1 < list1.Count; num1++)
				{
					int num2 = (int) list1[num1];
					if (num2 < this.Count)
					{
						((IStateManager)this[num2]).LoadViewState(list2[num1]);
					}
					else
					{
						GroupItem item1 = new GroupItem();
						((IStateManager)item1).LoadViewState(list2[num1]);
						this.Add(item1);
					}
				}
			}
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -