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
原文地址:https://www.cnblogs.com/mdy41034264/p/1360160.html