• GridView 全选


    <HeaderTemplate>
    <asp:CheckBox ID="cbAll" runat="server" AutoPostBack="True" OnCheckedChanged="CheckAll" Text="全选/取消" ToolTip="全选/取消全选" />
    </HeaderTemplate>
    <ItemTemplate>

    <asp:CheckBox ID="cbSelect" runat="server" ToolTip="选择" />
    <input id="hidid" type="hidden" runat="server" value='<%# Eval("ID") %>' />
    </ItemTemplate>

     protected void gvBillDetail_RowDataBound(object sender, GridViewRowEventArgs e)
     {

     if (e.Row.RowType == DataControlRowType.DataRow)
     {

                   CheckBox cbox = (CheckBox)e.Row.FindControl("cbSelect");

      //这里的处理是为了回显之前选中的情况
                    if (this.SelectedItems != null)
                    {
                        HtmlInputHidden hidid = (HtmlInputHidden)e.Row.FindControl("hidid");
                        if (this.SelectedItems.Contains(hidid.Value))
                        {
                            cbox.Checked = true;
                        }
                        else
                        {
                            cbox.Checked = false;
                        }
                    }

    }

      if (e.Row.RowType == DataControlRowType.Header)
                {
                    DataTable dtPPS = (DataTable)ViewState["dtPPS"];
                    CheckBox mycbAll = (CheckBox)e.Row.FindControl("cbAll");
                    if (mycbAll != null && this.SelectedItems.Count == dtPPS.Rows.Count)
                    {
                        mycbAll.Checked = true;
                    }
                }

    }

      /// <summary>
            /// 从当前页收集选中项的情况
            /// </summary>
            protected void CollectSelected()
            {
                ArrayList mySelectedItems = null;
                if (this.SelectedItems == null)
                    mySelectedItems = new ArrayList();
                else
                    mySelectedItems = this.SelectedItems;

                for (int i = 0; i < this.gvBillDetail.Rows.Count; i++)
                {
                    string id = ((HtmlInputHidden)this.gvBillDetail.Rows[i].FindControl("hidid")).Value;
                    CheckBox cb = this.gvBillDetail.Rows[i].FindControl("cbSelect") as CheckBox;
                    if (mySelectedItems.Contains(id) && !cb.Checked)
                        mySelectedItems.Remove(id);
                    if (!mySelectedItems.Contains(id) && cb.Checked)
                        mySelectedItems.Add(id);
                }
                this.SelectedItems = mySelectedItems;
            }

      protected void gvBillDetail_DataBinding(object sender, EventArgs e)
            {
                //在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
                CollectSelected();
            }

        //实现全选功能
            protected void CheckAll(object sender, EventArgs e)
            {
                CheckBox cbAll = (CheckBox)sender;
                for (int i = 0; i <= gvBillDetail.Rows.Count - 1; i++)
                {
                    CheckBox cbox = (CheckBox)gvBillDetail.Rows[i].FindControl("cbSelect");
                    if (cbox != null)
                    {
                        if (cbAll.Checked == true)
                        {
                            cbox.Checked = true;
                        }
                        else
                        {
                            cbox.Checked = false;
                        }
                    }
                }

                ArrayList mySelectedItems = new ArrayList();
                DataTable dtPPS = (DataTable)ViewState["dtPPS"];

                for (int i = 0; i < dtPPS.Rows.Count; i++)
                {
                    if (dtPPS.Rows[i]["Status"].ToString() == "1")
                    {
                        string id = dtPPS.Rows[i]["ID"].ToString();
                        if (cbAll.Checked == true && !mySelectedItems.Contains(id))
                        {
                            mySelectedItems.Add(id);
                        }
                        if (cbAll.Checked == false && mySelectedItems.Contains(id))
                        {
                            mySelectedItems.Remove(id);
                        }
                    }
                }
                this.SelectedItems = mySelectedItems;

            }

  • 相关阅读:
    继承映射
    一对多,多对一,自关联的配置
    Spring 配置自动扫描spring bean配置
    Dao 处理
    2019暑假集训 括号匹配
    2019暑假集训 BLO
    2019暑假集训 Intervals
    2019暑假集训 平板涂色
    2019暑假集训 走廊泼水节
    0002-五层小山
  • 原文地址:https://www.cnblogs.com/lgxll/p/2642235.html
Copyright © 2020-2023  润新知