问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

gridview checkbox实现所有页面全选

发布网友 发布时间:2022-04-27 12:22

我来回答

4个回答

懂视网 时间:2022-04-27 16:43

代码如下:
<%@ Page Language="C#" AutoEventWireup="true"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  // 计算数据,完全可以从数据看取得
  ICollection CreateDataSource()
  {
    System.Data.DataTable dt =new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(new System.Data.DataColumn("序号", typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));

    for (int i =0; i <8; i++)
    {
      System.Random rd =new System.Random(Environment.TickCount * i); ;
      dr = dt.NewRow();
      dr[0] = i.ToString();
      dr[1] ="【孟子】"+ i.ToString();
      dr[2] = System.Math.Round(rd.NextDouble() *100, 2);
      dr[3] = System.Math.Round(rd.NextDouble() *100, 2);
      dr[4] = System.Math.Round(rd.NextDouble() *100, 2);
      dr[5] = System.Math.Round(rd.NextDouble() *100, 2);
      dt.Rows.Add(dr);
    }
    System.Data.DataView dv =new System.Data.DataView(dt);
    return dv;
  }

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {

      GridView2.DataSource = GridView1.DataSource = CreateDataSource();
      GridView2.DataBind();
      GridView1.DataBind();
    }
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    Ret1.Text ="";
    foreach (GridViewRow gvr in GridView1.Rows)
    {
      CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
      if (ch.Checked)
      {
        Ret1.Text +="<li>GridView1 您选择的是(键值):"+ GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
      }
    }
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    Ret2.Text ="";
    foreach (GridViewRow gvr in GridView2.Rows)
    {
      CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
      if (ch.Checked)
      {
        Ret2.Text +="<li>GridView2 您选择的是(键值):"+ GridView2.DataKeys[gvr.DataItemIndex].Value.ToString();
      }
    }
  }

  protected void CheckAll(object sender, EventArgs e)
  {
    CheckBox cbx = (CheckBox)sender;
    foreach (GridViewRow gvr in GridView1.Rows)
    {
      CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");
      ch.Checked = cbx.Checked;
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>GridView 实现服务器端和客户端全选的两种方法</title>

  <script type="text/javascript">
  //<![CDATA[
  function CheckAll(oCheckbox)
  {
   var GridView2 = document.getElementById("<%=GridView2.ClientID %>");
   for(i =1;i < GridView2.rows.length; i++)
   {
    GridView2.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked;
   }
  }

  //]]>
  </script>

</head>
<body>
  <form id="Form1" runat="server">
    <table style="width:800px;font-size:12px;">
      <tr valign="top">
        <td>
          <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
            GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
            <HeaderStyle BackColor="#EDEDED" Height="26px"/>
            <Columns>
              <asp:TemplateField>
                <HeaderTemplate>
                  <asp:CheckBox ID="CheckBox1" runat="server" Text="全选" AutoPostBack="true" OnCheckedChanged="CheckAll"/>
                </HeaderTemplate>
                <ItemTemplate>
                  <asp:CheckBox ID="ItemCheckBox" runat="server"/>
                </ItemTemplate>
              </asp:TemplateField>
              <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
              <asp:BoundField DataField="语文" HeaderText="语文"/>
              <asp:BoundField DataField="数学" HeaderText="数学"/>
              <asp:BoundField DataField="英语" HeaderText="英语"/>
              <asp:BoundField DataField="计算机" HeaderText="计算机"/>
            </Columns>
          </asp:GridView>
          <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="得到选择的行值"/>
        </td>
        <td align="right">
          <asp:GridView ID="GridView2" runat="server" Font-Size="12px" BackColor="#FFFFFF"
            GridLines="Both" CellPadding="4" DataKeyNames="序号" AutoGenerateColumns="false">
            <HeaderStyle BackColor="#EDEDED" Height="26px"/>
            <Columns>
              <asp:TemplateField>
                <HeaderTemplate>
                  <input id="Checkbox2" type="checkbox" onclick="CheckAll(this)" runat="server"/><label>全选</label>
                </HeaderTemplate>
                <ItemTemplate>
                  <asp:CheckBox ID="ItemCheckBox" runat="server"/>
                </ItemTemplate>
              </asp:TemplateField>
              <asp:BoundField DataField="学生姓名" HeaderText="学生姓名"/>
              <asp:BoundField DataField="语文" HeaderText="语文"/>
              <asp:BoundField DataField="数学" HeaderText="数学"/>
              <asp:BoundField DataField="英语" HeaderText="英语"/>
              <asp:BoundField DataField="计算机" HeaderText="计算机"/>
            </Columns>
          </asp:GridView>
          <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="得到选择的行值"/>
        </td>
      </tr>
      <tr valign="top">
        <td>
          <asp:Literal ID="Ret1" runat="server"></asp:Literal>
        </td>
        <td align="right">
          <asp:Literal ID="Ret2" runat="server"></asp:Literal>
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

热心网友 时间:2022-04-27 13:51

你在GridView放CheckBox的那一列的Header处放一个CheckBox,勾上它就代表选中所有了(1、下面的CheckBox也自动全部打勾。2、如果取消选择了下面的任意一个CheckBox,最上面的那个也自动取消)并作为一个标记以备后用。
分了页的部分,通过GridView是肯定去不到值的,可以根据刚刚的标记去数据源重抓一遍

热心网友 时间:2022-04-27 15:09

javascript实现全选

c#判断前台的checkbox是否选中还是很容易的

热心网友 时间:2022-04-27 16:44

比较简单。。一个循环搞定。grdPosition是Gridview的ID,cboxSelectAll是headerRow的cheakBox,cboxSelect的cheakBox..具体代码给你了。能不能看懂就看你自己了。

if (((CheckBox)this.grdPosition.HeaderRow.FindControl("cboxSelectAll")).Checked == true)
{
for (int i = 0; i < this.grdPosition.Rows.Count; i++)
{
((CheckBox)this.grdPosition.Rows[i].FindControl("cboxSelect")).Checked = true;

}
}
else
{
for (int i = 0; i < this.grdPosition.Rows.Count; i++)
{
((CheckBox)this.grdPosition.Rows[i].FindControl("cboxSelect")).Checked = false;

}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
体育运动员谁最有钱? 曲轴箱通风管漏气 有什么现象 曲轴箱强制通风管漏气? 曲轴箱(曲轴箱通风管坏了有什么影响) 100分求CS PING的问题 枇杷有什么作用与功效与作用 枇杷的功效和作用 三星手机大全5660三星手机大全所有型号图片 三星s5660能用动感地带152号段的卡上wlan吗? 我的三星S5660插移动卡就会显示只能进行紧急呼叫,用联通卡没问题,把卡... oppor9spuls耗电太快了!有解决办法不,用过的发表下你们耗电快吗? oppo r9s plus为什么很耗电 你好,我的oppor9plus在所有程序都关了的情况下,晚上待机消耗15%的电,请问这是什么原因? OPPO R9s plus刷抖音大约两分钟一个电,感觉有点快,正常吗? 9000认证合同丢失 签署合同是否有效到哪里去认证 埃及的合同认证要怎么做,需要哪些相关的东西 认证机构与企业为啥要签订合同 最新的手机QQ带闪照功能的是哪个版本我的为什么更新不出来 求大神告知 我用的苹果6s plus_百度问一问 msds认证合同怎么写 什么是合同认证???在线等 我在天津武清区起的营业执照,现在地址要迁到天津市南开区了,营业地址变更都需要收么手续?时间大概多长 污水处理系统有哪几个方面? 请问大型污水处理厂的初沉池和二沉池是不是基本上都用辐流式的? 公司想从天津搬去河北需要走什么流程? 天津开发区工商地址变更需携带材料,详细 我医疗器械公司原在天津西青注册,现想迁址北辰区,如何办理迁址手续 常见的污水处理系统工艺有哪些? 天津市企业经营地址变更手续? 请教ppt高手 主题怎么添加 G6580香港九龙到佛山西,在福田站能上车吗? 什么的眼睛? 请问“()眼睛”括号里填什么? ( )的眼睛(填形容词) 用Microsoft PowerPoint画折线统计图 如何实现gridview中 checkbox 多选限制,最多选择5项。 贵阳市初二地理生物会考成绩查询 2019年贵州省贵阳市初二会考是按排名算等级还是分数,如果是分数,那多少分是b多少分是a 9月份手机收到不明好多网站验证码,之后微信语音播放失败,请教怎么恢复_百度问一问 莫名收到很多验证码 为什么会有各种短信验证码没完没了的出现,怎么办才能关掉不再出? 怎样消除衣服静电 GridView 全选问题 C# gridview中checkbox2个问题 如何通过工行网上银行查询柜台记账式债券的到期时间? 蒲城县打击黑车非法运营举报电话是多少 蒲城县公安局电话号码是多少 陕西省蒲城县公安局电话多少 蒲城客运中心服务电话 渭南防疫中心24小时电话