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

📄 comboitemcollection.cs

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

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

		public ComboItemCollection()
		{
		}

		#region ICollection 成员

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

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

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

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

		#endregion

		#region IEnumerable 成员

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

		#endregion

		#region 自定义成员

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

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

		public void Insert(int index, ComboItem value)
		{
			this._items.Insert(index, value);
		}

		public void Remove(ComboItem value)
		{
			this._items.Remove(value);
		}

		public bool Contains(ComboItem value)
		{
			return this._items.Contains(value);
		}

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

		public int IndexOf(ComboItem value)
		{
			return this._items.IndexOf(value);
		}

		public int Add(ComboItem value)
		{
			return this._items.Add(value);
		}

		public void AddRange(ComboItemCollection items)
		{
			this._items.AddRange(items);
		}
		#endregion

		#region IStateManager 成员

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

		bool IStateManager.IsTrackingViewState
		{
			get
			{
				return this._IsTrackingViewState;
			}
		}

		object IStateManager.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;
		}

		void IStateManager.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
					{
						ComboItem item1 = new ComboItem();
						((IStateManager)item1).LoadViewState(list2[num1]);
						this.Add(item1);
					}
				}
			}
		}

		#endregion

		#region IList Members
		int IList.Add(object item)
		{
			ComboItem item1 = (ComboItem) item;
			int num1 = this._items.Add(item1);
			return num1;
		}

		bool IList.Contains(object item)
		{
			return this.Contains((ComboItem) item);
		}

		bool IList.IsFixedSize
		{
			get
			{
				return false;
			}
		}

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

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

		int IList.IndexOf(object item)
		{
			return this.IndexOf((ComboItem) item);
		}

		void IList.Insert(int index, object item)
		{
			this.Insert(index, (ComboItem) item);
		}

		void IList.Remove(object item)
		{
			this.Remove((ComboItem) item);
		}

		#endregion
	}
}

⌨️ 快捷键说明

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