zoukankan      html  css  js  c++  java
  • 使用js获取checkbox控件在GridView中的第几行

    这次的知识点是如何使用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 = "";
            } 

  • 相关阅读:
    zabbix 表结构详情(基本)
    服务器监控zabbix
    服务器启动与关闭
    查看mysql中所有表的数据记录
    linux 常用进程使用命令
    linux mysql access denied for user ‘root’@’localhost'(using password:YES)
    初次使用IDEA的相关技巧
    javaweb回顾第十二篇监听器
    javaweb回顾第十一篇过滤器(附实现中文乱码问题)
    javaweb回顾第十篇JSTL
  • 原文地址:https://www.cnblogs.com/Jack-Cheng008/p/12744469.html
Copyright © 2011-2022 走看看