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

📄 grouplistitemcollection.cs

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

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

		public GroupListItemCollection()
		{
		}	
	
		public void Add(string item)
		{
			this.Add(new GroupListItem(item));
		}

		public void Add(GroupListItem item)
		{
			this._listitems.Add(item);
		}

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

		public int IndexOf(GroupListItem item)
		{
			return this._listitems.IndexOf(item);
		}

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

		public void Insert(int index, GroupListItem item)
		{
			this._listitems.Insert(index, item);
		}

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

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

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

		public bool Contains(GroupListItem item)
		{
			return this._listitems.Contains(item);
		}

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

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

		internal int FindByValue(string value)
		{
			int idx = -1;
			for(int i=0; i < this.Count; i++)
			{
				if(string.Compare(value,this[i].Value,true)==0)
				{
					idx = i;
					break;
				}
			}
			return idx;
		}

		internal int FindSelected()
		{
			int idx = -1;
			for(int i=0; i < this._listitems.Count; i++)
			{
				if(this[i].Selected)
				{
					idx = i;
					break;
				}
			}
			return idx;
		}

		#region IStateManager members

		public void TrackViewState()
		{
			_IsTrackingViewState = true;
			for(int i=0; i < this._listitems.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
					{
						GroupListItem item1 = new GroupListItem();
						((IStateManager)item1).LoadViewState(list2[num1]);
						this.Add(item1);
					}
				}
			}
		}

		#endregion

		#region ICollection members

		public bool IsSynchronized
		{
			get
			{
				return false;
			}
		}

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

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

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

		#endregion

		#region IEnumerable members

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

		#endregion

		#region IList members

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

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

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

		public void Insert(int index, object value)
		{
			this._listitems.Insert(index,value);
		}

		public void Remove(object value)
		{
			this._listitems.Remove(value);
		}

		public bool Contains(object value)
		{
			return this._listitems.Contains(value);
		}

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

		public int IndexOf(object value)
		{
			return this._listitems.IndexOf(value);
		}

		public int Add(object value)
		{
			return this._listitems.Add(value);
		}

		public bool IsFixedSize
		{
			get
			{
				return this._listitems.IsFixedSize;
			}
		}

		#endregion
	}
}

⌨️ 快捷键说明

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