遍历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; }