• GirdView学习之六 使用模板列实现多行删除


     1using System;
     2using System.Data;
     3using System.Configuration;
     4using System.Collections;
     5using System.Web;
     6using System.Web.Security;
     7using System.Web.UI;
     8using System.Web.UI.WebControls;
     9using System.Web.UI.WebControls.WebParts;
    10using System.Web.UI.HtmlControls;
    11using System.Collections.Generic;
    12
    13public partial class GridViewTemplateTest : System.Web.UI.Page
    14{
    15    //当前页码,从0开始
    16    private int curPage
    17    {
    18        get
    19        {
    20            return ViewState["curPage"== null ? 0 : Convert.ToInt32(ViewState["curPage"]);
    21        }

    22        set
    23        {
    24            ViewState["curPage"= value;
    25        }

    26    }

    27    protected void Page_Load(object sender, EventArgs e)
    28    {
    29        if (!IsPostBack)
    30        {
    31            ClientInfoAccessObj accessor = new ClientInfoAccessObj();
    32            curPage = 0;  //显示第一页
    33            GridView1.DataSource = accessor.GetAllClients();
    34            GridView1.DataBind();
    35        }

    36    }

    37    protected void btnDeleteSelectedInfo_Click(object sender, EventArgs e)
    38    {
    39        List<int> SelectedClientIDs = GetSelectedClientIDs();
    40        if (SelectedClientIDs.Count == 0)
    41            return;
    42
    43        ClientInfoAccessObj accessor = new ClientInfoAccessObj();
    44        foreach (int id in SelectedClientIDs)
    45        {
    46            accessor.DeleteClientInfoForID(id);
    47        }

    48        ClientScript.RegisterStartupScript(this.GetType(), "info""alert('记录已成功删除');"true);
    49
    50        //计算应该显示哪一页
    51        if (SelectedClientIDs.Count == GridView1.PageSize) //选中全页上的所有记录
    52            if (curPage != 0)
    53                curPage--;   //显示前一页
    54
    55
    56        //重新绑定数据并显示
    57        GridView1.DataSource = accessor.GetAllClients();
    58        GridView1.PageIndex = curPage;
    59        GridView1.DataBind();
    60    }

    61
    62    private List<int> GetSelectedClientIDs()
    63    {
    64        List<int> ids = new List<int>();
    65        //循环查找被选中的行
    66        foreach (GridViewRow gvr in GridView1.Rows)
    67        {
    68            //是数据行
    69            if (gvr.RowType == DataControlRowType.DataRow)
    70            {
    71                //根据模板列中的控件ID查找指定的控件
    72                CheckBox chk = gvr.FindControl("CheckBox1"as CheckBox;
    73                if ((chk != null&& chk.Checked)
    74                    //取出选中行的主键,加入到集合中
    75                    ids.Add((int)GridView1.DataKeys[gvr.RowIndex].Value);
    76            }

    77        }

    78        return ids;
    79    }

    80    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    81    {
    82        ClientInfoAccessObj accessor = new ClientInfoAccessObj();
    83        GridView1.DataSource = accessor.GetAllClients();
    84        GridView1.PageIndex = e.NewPageIndex;
    85        GridView1.DataBind();
    86        //保存当前页码
    87        curPage = e.NewPageIndex;
    88    }

    89}

    90
  • 相关阅读:
    轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
    Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD
    急速搭建 Serverless AI 应用:为你写诗
    O'Reilly 1500 份问卷调研:2019 年 Serverless 落地到底香不香?
    2019 阿里巴巴云原生这一年
    快速部署 Spring PetClinic 到函数计算平台
    1354. Construct Target Array With Multiple Sums
    1352. Product of the Last K Numbers
    1351. Count Negative Numbers in a Sorted Matrix
    1347. Minimum Number of Steps to Make Two Strings Anagram
  • 原文地址:https://www.cnblogs.com/mdy41034264/p/1360160.html
Copyright © 2020-2023  润新知