• GridView中添加一个CheckBox列,翻页后保存选中状态



     2using System;
     3using System.Data;
     4using System.Configuration;
     5using System.Collections;
     6using System.Web;
     7using System.Web.Security;
     8using System.Web.UI;
     9using System.Web.UI.WebControls;
    10using System.Web.UI.WebControls.WebParts;
    11using System.Web.UI.HtmlControls;
    12
    13public partial class GridSamples_GridView_CheckBoxColumn : System.Web.UI.Page
    14{
    15    /**//// <summary>
    16    /// 获取或设置选中项的集合
    17    /// </summary>

    18    protected ArrayList SelectedItems
    19    {
    20        get
    21        {
    22            return (ViewState["mySelectedItems"!= null? (ArrayList)ViewState["mySelectedItems"] : null;
    23        }

    24        set
    25        {
    26            ViewState["mySelectedItems"= value;
    27        }

    28    }

    29
    30    protected void Page_Load(object sender, EventArgs e)
    31   {
    32        
    33    }

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

    41
    42   
    43    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    44    {
    45        //这里的处理是为了回显之前选中的情况
    46        if (e.Row.RowIndex > -1 && this.SelectedItems!=null)
    47        {
    48            DataRowView row = e.Row.DataItem as DataRowView;
    49            CheckBox cb = e.Row.FindControl("CheckBox1"as CheckBox;
    50            if(this.SelectedItems.Contains(row["id"].ToString()))
    51                cb.Checked = true;
    52            else
    53                cb.Checked = false;
    54        }

    55    }

    56    /**//// <summary>
    57    /// 从当前页收集选中项的情况
    58    /// </summary>

    59    protected void CollectSelected()
    60    {
    61        ArrayList selectedItems = null;
    62        if (this.SelectedItems == null)
    63            selectedItems = new ArrayList();
    64        else
    65            selectedItems = this.SelectedItems;
    66
    67        for (int i = 0; i < this.GridView1.Rows.Count; i++)
    68        {
    69            string id = this.GridView1.Rows[i].Cells[1].Text;
    70            CheckBox cb = this.GridView1.Rows[i].FindControl("CheckBox1"as CheckBox;
    71            if (selectedItems.Contains(id) && !cb.Checked)
    72                selectedItems.Remove(id);
    73            if (!selectedItems.Contains(id) && cb.Checked)
    74                selectedItems.Add(id);
    75        }

    76        this.SelectedItems = selectedItems;
    77    }

    78
    79    protected void Button1_Click(object sender, EventArgs e)
    80    {
    81        //最后,需要对选中项进行操作之前,不能忘了还要最后一次收集当前页的选中情况
    82        CollectSelected();
    83
    84       this.TextBox1.Text = string.Empty;
    85        foreach (object tmp in this.SelectedItems)
    86            this.TextBox1.Text += tmp.ToString() + ",";
    87    }

    88}

    89
  • 相关阅读:
    Android Bitmap 常见的几个操作:缩放,裁剪,旋转,偏移
    vue.js 本地解决跨域
    VUE添加网站favicon.ico图标
    在mpvue引入flyio
    页面中加入地图map
    360校招——最后赢家(C++)
    奇安信校招——买口罩(c++)
    携程校招——携程海洋馆的海豚小宝宝(C++)
    阿里云Web应用托管服务,低成本建个人博客(wordpress和wiki.js)
    (嵌入式)工程模板的创建和MDK下配置开发STM32F103ZE
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1281740.html
Copyright © 2020-2023  润新知