📄 groupitemcollection.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 + -