遍历DataGrid中的复选框:
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
/// <summary>
/// 从当前页中收集选中项的情况
/// </summary>
protected void CollectSelected()
{
bool isCheck = false;
bool isHidden = false;
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
foreach (DataGridItem item in MainGrid.Items)
{
foreach (Control obj in item.Cells[0].Controls)
{
CheckBox cb = new CheckBox();
HiddenField hf = new HiddenField();
if (obj is CheckBox)
{
cb = obj as CheckBox;
if (cb.Checked)
{
isCheck = true;
}
}
if (obj is HiddenField)
{
hf = obj as HiddenField;
if (isCheck)
{
isHidden = true;
}
}
string id = hf.Value;
if (selectedItems.Contains(id) && !isCheck && !isHidden)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && isCheck && isHidden)
selectedItems.Add(id);
}
isCheck = false;
isHidden = false;
}
this.SelectedItems = selectedItems;
}
遍历GridView中的复选框:
/// <summary>
/// 获取或设置选中项的集合
/// </summary>
protected ArrayList SelectedItems
{
get
{
return (ViewState["mySelectedItems"] != null) ? (ArrayList)ViewState["mySelectedItems"] : null;
}
set
{
ViewState["mySelectedItems"] = value;
}
}
/// <summary>
/// 从当前页中收集选中项的情况
/// </summary>
protected void CollectSelected()
{
ArrayList selectedItems = null;
if (this.SelectedItems == null)
selectedItems = new ArrayList();
else
selectedItems = this.SelectedItems;
for (int i = 0; i < this.data_List.Rows.Count; i++)
{
//string id = this.data_List.Rows[i].Cells[1].Text;
CheckBox cb = this.data_List.Rows[i].FindControl("checkBox_Item") as CheckBox;
HiddenField hf = this.data_List.Rows[i].FindControl("hidden_Id") as HiddenField;
string id = hf.Value;
if (selectedItems.Contains(id) && !cb.Checked)
selectedItems.Remove(id);
if (!selectedItems.Contains(id) && cb.Checked)
selectedItems.Add(id);
}
this.SelectedItems = selectedItems;
}