这次的知识点是如何使用js获取checkbox控件所在的是第几行!!!

我们可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始)

这两个一定要记好:

var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;

var col_num = target.parentNode.cellIndex;

获取 parentNode (也就是 td),td.cellIndex 就是所在列的键值

获取 parentNode.parentNode (也就是 tr),tr.rowIndex 就是所在行的键值

在开发过程中,GridView绑定数据时需要在第一列绑定checkbox控件用来执行多选等复杂操作,然后可以在前台页面通过手动点击checkbox来使其checked属性变成true也就是选中状态,在后台循环时可以轻松获取到checkbox的checked值,但是由于一些业务需求可能不需要使用手动去点击,而是通过编写出js方法,若符合方法结果的则循环修改checkbox的checked属性变成true也就是选中状态,这时会发现在后台是获取不到checkbox的checked值。

在我遇到这个问题时也让我困扰了好久,明明在前台通过js方法已经将某些checkbox控件的checked值设置为true了,为什么在后台就是获取不到呢?

好了,我来说一下最后我是怎么解决的:

首先这个问题是在前台js中可以获取到checkbox的checked的值,但是在后台循环时获取不到。

先设置一个隐藏控件:

<input type="hidden" id="row_num" runat="server" />

在前台先通过循环判断被选中的checkbox

if (GV.rows[i].cells[0].children(0).checked) {
                        var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;
                        document.getElementById("row_num").value = row_num;
                    }

然后通过 var row_num = GV.rows[i].cells[0].children(0).parentNode.parentNode.rowIndex;来获取到在GridView中第几行的CheckBoex的行数,然后赋值到一个隐藏控件上去,这样在后台就可以获取到这个隐藏控件上面的值了,然后通过在Rows[]里面将取得的数减1就是在前台被选中的checkbox的行数,最后将它设置为True就OK了。

if (this.row_num.Value != "") {
            int j = Convert.ToInt32(this.row_num.Value);
            (this.GridView1.Rows[j - 1].Cells[0].FindControl("CKB_data") as CheckBox).Checked = true;
            this.row_num.Value = "";
        }

使用js获取checkbox控件在GridView中的第几行的更多相关文章

  1. JS获取用户控件中的子控件Id

    用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...

  2. JS 获取Button控件的提交类型

    <script type="text/javascript"> <!--获取button控件的类型---> function isAuditOrCancel ...

  3. JS获取服务器端控件ID

    很多时候我们需要在JS中对服务器端控件进行一些简单处理,但是这个时候没有必要回发到服务器,让服务器去处理,这个时候就又要用到JS了 那么怎么去获取这个服务器端控件呢?我们知道服务器最终返回到用户界面的 ...

  4. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  5. JS 获取FileUpload1控件地址

    function openList() { //判断浏览器类型 var isIE = (document.all) ? true : false; ); ); ); var path = " ...

  6. GridView控件RowDataBound事件中获取列字段值的几种途径

    前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID ...

  7. 重新想象 Windows 8 Store Apps (12) - 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示

    原文:重新想象 Windows 8 Store Apps (12) - 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示 [源码下载] 重新想象 Windows 8 Store Ap ...

  8. JS数量输入控件

    JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...

  9. C#导出 Excel 时, 生成 CheckBox 控件

    在使用 Microsoft.Office.Interop.Excel 组件导出Excel 表格时,要把导出前的  CheckBox 控件一同导出到 excel 表格中,对于这个功能 看似很简单,但 M ...

随机推荐

  1. 病毒木马查杀实战第014篇:U盘病毒之手动查杀

    在U盘中发现病毒 前段时间需要往虚拟机中拷贝点资料,如同往常一样,插上我的U盘,并且在虚拟机的设置中选择连接U盘.奇怪的是这次的连接时间较以往长,并且还出现了"自动播放"窗口: 图 ...

  2. 仁者见仁:缓冲区栈溢出之利用 Exploit 形成完整攻击链完全攻略(含有 PayLoad)

    > 前言 内存缓冲区溢出又名 Buffer OverFlow,是一种非常危险的漏洞,在各种操作系统和应用软件中广泛存在.利用缓冲区溢出进行的攻击,小则导致程序运行失败.系统宕机等后果,大则可以取 ...

  3. React-条件渲染

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  4. c# p/invoke 无法加载指定的dll 找不到指定的模块 解决方法

    写的程序本来开始好好的,不知道怎么突然就出现了以上这个问题,纠结了好久,网上找了各种方法,比如什么嵌入dll,在system32下面放入dll等等,均宣告失败 下面把我的解决方法写出来,以后只要是这个 ...

  5. uni-app&H5&Android混合开发二 || 使用Android Studio打包应用APK

    前言: 在上一章节我们已经讲了如何uni-app离线打包Android平台教程,这一章就该来讲讲如何使用Android Studio打包应用APK提供给Android手机安装使用了. 第一步.首先打开 ...

  6. 【python】Leetcode每日一题-打家劫舍2

    [python]Leetcode每日一题-打家劫舍2 [题目描述] 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋 ...

  7. SSM中事务的配置模板

    Spring-tx.xml 配置思路: 1. 声明事务管理器DataSourceTransactionManager,并注入数据源dataSource属性 2.配置事务增强<tx:advice& ...

  8. linux集群压测部署方案

    我们今天主要分享的内容从三方面讲解. 集群压力机部署 shell脚本简介 shell脚本搞定压力机部署 集群压力机部署   linux.png 分布式压测背景介绍 在企业项目实战时,如果被压的服务器处 ...

  9. JWT 基本使用

    JWT 基本使用 在上一节中 session 共享功能使用 redis 进行存储,用户量激增时会导致 redis 崩溃,而 JWT 不依赖服务器,能够避免这个问题. 1.传统 session 1.1. ...

  10. [2021BUAA软工助教]个人第一次阅读作业小结

    BUAA个人阅读作业小结 一.作业要求 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2021_LR/homework/11776 二.评分规则 言之有物,按 ...