有时候想实现一个CheckBox选取功能,但是很多细节不是很清楚

相信大家都有遇到类似的情况,直接看代码,如下:

前端代码GridView1,CheckBox控件设置

<asp:GridView ID="GridView1" runat="server" Height="2px" Width="720px" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="1" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound" OnRowDeleting="GridView1_RowDeleting" AutoGenerateColumns="False" PageSize="8" >
<RowStyle ForeColor="#000066" />
<FooterStyle BackColor="White" ForeColor="#000066" />

<Columns>

<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked="false" />
<%--<asp:Label ID="lbformid" runat="server" Visible="false" Text='<%# Eval("formid") %>'></asp:Label>--%>
</ItemTemplate>
<HeaderTemplate>
<input type="checkbox" id="ChkHead" onclick="CheckAll3(this)" title="選擇全部" /><%--加上checked可自動勾選--%>
</HeaderTemplate>
<HeaderStyle Width="20px" />
<ItemStyle Width="20px" />

</asp:TemplateField>
                            <asp:BoundField DataField="data" HeaderText="日期(data)" ReadOnly="True" />
                            <asp:BoundField DataField="users" HeaderText="姓名(users)" SortExpression="姓名" />
                            <asp:BoundField DataField="user_name" HeaderText="賬號(user_name)"  />
                            <asp:BoundField DataField="user_email" HeaderText="郵箱(user_email)"  />
                            <asp:BoundField DataField="mony" HeaderText="金額(mony)" />

</Columns>
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" CssClass="Freezing" />

 后台代码

protected void Button3_Click(object sender, EventArgs e)
{
GridView2.DataSource = null; //數據定義成空值
GridView2.DataBind();

if (GridView1.Rows.Count < 1) //GridView1控件數據小於1行,執行該語句
{
MessageBox.Text = "請先查詢資料再匯入";
MessageBox.ForeColor = System.Drawing.Color.Red; //獲取背景顏色
return;
}
DataTable dte = new DataTable();
dte.Columns.Add("data", typeof(string)); //獲取屬於該表列的集合
dte.Columns.Add("users", typeof(string));
dte.Columns.Add("user_name", typeof(string));
dte.Columns.Add("user_email", typeof(string));
dte.Columns.Add("mony", typeof(string));
DataRow dr;

////建立相同架構的新數據
//dr["data"] = "data";
//dr["users"] = "";
//dr["user_name"] = "";
//dr["user_email"] = "";
//dr["mony"] = "";
int j=0;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked) //默認是true(勾起)
{
dr = dte.NewRow();//創建具有相同架構表的新數據
dr["data"] = GridView1.Rows[i].Cells[1].Text.ToString(); //獲取GridView1中列的位置,將數據綁定到建立的架構表相同的列
dr["users"] = GridView1.Rows[i].Cells[2].Text.ToString();
dr["user_name"] = GridView1.Rows[i].Cells[3].Text.ToString();
dr["user_email"] = GridView1.Rows[i].Cells[4].Text.ToString();
dr["mony"] = GridView1.Rows[i].Cells[5].Text.ToString();
dte.Rows.Add(dr);
j++;//增益性
}

}
if (j<=0) //當excel中的MHour(月加班上限)小於或等於GridView1控件中第5行時,將判斷“時數必須大於已用時數!!”
{
MessageBox.Text = dte + "請選擇一項";
MessageBox.ForeColor = System.Drawing.Color.Red;
return;
}

GridView2.DataSource = dte;
GridView2.DataBind();

}

点击 Button触发事件将GridView1 CheckBox勾选的行添加到GridView2中的更多相关文章

  1. jquery checkbox勾选取消勾选的诡异问题

    jquery checkbox勾选/取消勾选的诡异问题jquery checkbox勾选/取消勾选的诡异问题 <form>        你爱好的运动是?<input type=&q ...

  2. 用DIV遮罩解决checkbox勾选无效的问题

    在前端开发的过程中,遇到一种情况,需要勾选,为了用户的操作便捷就将click事件放到了DIV上.(其中使用了knockout.js) 代码大概如下: <div id="one" ...

  3. 为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked

    为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked 正常情况下我们设置给CheckBox一个checked属性后一般都会选中 然而我今天在做案例的时候却遇到了类 ...

  4. asp.net 翻页时用ViewState保存上一页checkbox勾选的值

    /// <summary>        /// checkbox勾选取消勾选事件        /// </summary>        /// <param nam ...

  5. 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选

    设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...

  6. 获取checkbox勾选的id

    需求描述:做批量删除或者批量修改的时候需要获得多个id,根据checkbox勾选来获取对应的d 两种方法: //html代码<table id="table1"> &l ...

  7. 点击button触发onclick事件判空后依旧自动跳转

    这是一个前端的问题. 其中判断字符串为空的脚本代码是这样的: var remark = $("#Remark").val(); //判空.注意:var reg = /空格/g; v ...

  8. ASP.NET 多次点击button后事件执行多次 并发解决 频繁操作解决办法

    首先让我们体验一下频繁操作: 1)打开项目,在后台aspx.cs等服务器页面,设置断点. 2)点击页面按钮 3)调试开始进入断点,然后重复点击页面按钮 4)服务器第一次事件已经处理完毕,调试再次进入了 ...

  9. js点击空白处触发事件

    我们经常会出现点击空白处关闭弹出框或触发事件 <div class="aa" style="width: 200px;height: 200px;backgroun ...

随机推荐

  1. 大数据量下DataTable To List效率对比

    使用反射和动态生成代码两种方式(Reflect和Emit) 反射将DataTable转为List方法 public static List<T> ToListByReflect<T& ...

  2. Java基础练习1(数据类型转换)

    1.下列代码的输出结果是:()(单选) public static void main(String[] args){ double money = 3.0; money -= 2.9; System ...

  3. 结合JDK源码看设计模式——迭代器模式

    前言: Iterator翻译过来就是迭代器的意思.在前面的工厂模式中就介绍过了iterator,不过当时介绍的是方法,现在从Iterator接口的设计来看,似乎又是一种设计模式,下面我们就来讲讲迭代器 ...

  4. Bootstrap3级联多选下拉框

    <!DOCTYPE html> <html> <head> <title>Bootstrap3级联多选下拉框</title> <met ...

  5. 使用StackExchange.Redis 连接redis的pipeline命令使用

    这几天公司老项目用到了这个组件,需要设置初始化ID,发现这个组件没有pipeline命令的方法,去官方文档去瞅了一波,发现也没有给出对应的解决方案,后面自己发现组件里面其实有 其实就是这个接口的一个方 ...

  6. requirement failed: Unacceptable value for property 'kafka.timeline.metrics.host_in_memory_aggregation', boolean values must be either 'true' or 'false

    requirement failed: Unacceptable value for property 'kafka.timeline.metrics.host_in_memory_aggregati ...

  7. IdentityServer4 知多少

    1. 引言 现在的应用开发层出不穷,基于浏览器的网页应用,基于微信的公众号.小程序,基于IOS.Android的App,基于Windows系统的桌面应用和UWP应用等等,这么多种类的应用,就给应用的开 ...

  8. CSS Modules In Webpack

    1)从形式上看,CSS Modules 是将CSS中的选择器转换为变量,然后在DOM中引用变量来引入样式. 2)从效果上看,CSS Modules 可以将CSS选择器名字转成随机字符串,保证选择器同名 ...

  9. 《深入理解 JVM 虚拟机》 --- 看书笔记

    1.JVM 内存溢出 1.堆溢出:堆要不断的创建对象,如果避免了垃圾回收来清除这些对象,就会产生JVM内存溢出.一般手段是通过内存映像分析工具对Dump出来的堆转储快照进行分析,分清楚到底是内存泄露还 ...

  10. 让你用 Chrome 上网快到想哭:Vimium

    Chrome 已经成了很多人的主力浏览器,你可能被它的简洁快速所吸引,但它日益丰富的「扩展」,你可能从来都没有接触过,而事实上,很多扩展可以挖掘出 Chrome 的潜能,让它变得前所未有的强大.有哪些 ...