选中标题复选框后,为每个选中的行获取特定单元格值

时间:2017-11-27 04:26:46

标签: javascript jquery html asp.net html-table

我有gridview有标题复选框并且每行都有复选框..当我点击标题复选框时,我需要检查子复选框是否被选中,如果选中,我需要获得所有选中行的第三个Cell值。

为此我正在做类似下面的Javascript函数:

 function toggleSelection(source) {
    $("#MainContent_gvCG input[id*='chkCert']").each(function (index) {
        if(source.checked) {
            if (this.checked) {

               ////Here i need to access the third cell values of all rows

            }
        }
    });
}

样本表格式(为了更好地理解):

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
 </script>
 <table border="1">
  <tr>
    <th>CFS Name</th>
    <th>Amount</th>
    <th>TCFSA</th>
    <th>CODEX</th>
    <th><input type="checkbox" id="chkHeader"/></th>
  </tr>
  <tr>
    <td>TRANSWORLD GLS INDIA</td>
    <td>Abc</td>
    <td>cg</td>
    <td>de</td>
    <td><input type="checkbox" class="chkCert"></td>
  </tr>
  ................
  ...............
  ..............
  </table>

这是我的gridview:

     <asp:GridView ID="gvPRCertInfo" runat="server" AutoGenerateColumns="False" GridLines="None"                     
           OnRowDataBound="gvPRCertInfo_RowDataBound"
            CssClass="data responsive">
             <Columns>
                <asp:TemplateField HeaderText="Select" SortExpression="">
                 <HeaderTemplate>
                   <asp:CheckBox ID="chkboxSelectAll" runat="server" AutoPostBack="true" onclick="toggleSelection(this);"  OnCheckedChanged="chkboxSelectAll_CheckedChanged"/>
                     </HeaderTemplate>
                       <ItemTemplate>
                        <asp:CheckBox ID="chkCert" AutoPostBack="true" OnCheckedChanged="chkCert_CheckedChanged"  runat="server" />                                    
                         <input type="hidden" id="hdnCertId" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "CertId") %>' />
                       </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="CertificateID" HeaderText="Certificate ID" HeaderStyle-HorizontalAlign="Center" />
         ....................
         .....................
         ..............
       </Columns>                            
   </asp:GridView>

任何人都可以建议任何有关如何访问所有已检查行的第三个单元格值的想法..除此之外的任何更好的解决方案也欢迎。

修改后的代码:

function toggleSelection(source) {
    $('#<%= gvPRCertInfo.ClientID %> input[id*="chkCert"]').each(function () {
            if (source.checked) {
                alert("source checked");
                if (this.checked) {
                    alert("child chk");
                    var allVlues = $(this).closest('tr').children('td:eq(4)').html();
                    alert(allVlues);

                }
            }
        });
    }

我无法提醒此警告警告(“儿童chk”); ,任何人都可以帮助解决此问题。

1 个答案:

答案 0 :(得分:0)

如果您可以将其视为仅限客户端的简单数据集,那么请选择您想要的内容。一个例子:

var $thirdCell = $(this).parent().children(':nth-child(3)');
console.log('Text: ', $thirdCell.text());
console.log('HTML: ', $thirdCell.html());

根据“价值”的含义,您可以获得文字或HTML。