【问题标题】:how to get previously selected rows of a bootstrap dataTable while searching如何在搜索时获取先前选择的引导数据表行
【发布时间】:2016-10-12 17:55:17
【问题描述】:

我使用引导数据表来显示数据。同时,我有一个 HTML 复选框作为该数据表的一列。我有一个提交按钮来获取选定复选框的值来做一些事情。我在搜索下选择复选框时遇到以下问题。

当我选中所有复选框并单击 保存 按钮时,我得到了所有值。它按我的预期工作。

但是当我通过bootstrap dataTable的内置搜索框搜索时出现意外。这是图片视图

在这种情况下,当我按下 Save 时,我只得到了两个值,尽管所有其他值仍然被选中。 如何在搜索时获取所有选定的值

这是我获取复选框值的保存按钮的jquery代码

$("#btnSave").click(function () {
    var checkboxes = document.getElementsByName('foo');
    var vals = "";
    for (var i = 0, n = checkboxes.length; i < n; i++) {
        if (checkboxes[i].checked) {
            vals += "," + checkboxes[i].value;
        }
    }
    ....
    //Other stuff
    ....
}

请帮帮我。

【问题讨论】:

  • 除了风格之外,这与引导程序无关。您需要在 DataTables 插件 api 中工作
  • 你能创建一个小提琴,这样我们就可以直接处理你的代码吗?

标签: javascript jquery html twitter-bootstrap datatable


【解决方案1】:

当您进行搜索时,它只会检查满足给定条件的行。所以你的搜索逻辑是这样工作的

if(searchCriteria==true)
{
showValue
}

即使您之前选择了值,它也不会显示所有值,因为它们不满足给定条件。现在,在这种情况下,当您单击“保存”时,它只会根据您的 java 脚本获取数据表中经过检查并满足给定条件的那些行。

现在,如果您仍然希望获取所有选定的值,您可以尝试一种方法,将选定的值放入某种列表或集合中,然后将列表对象放入会话中。因此,每次单击保存时,您都可以从会话中检索列表。但我真的不明白您为什么要这样做,除非您每次都需要检索选定的值。

【讨论】:

    【解决方案2】:

    我的工作就是这样完成的

      var table = $('#tblReportList').dataTable();
    

    当我在 dataTable 中搜索时,我得到的只是与搜索条件匹配的选定值。但是之前选择的值消失了。为了获得之前选择的值,我使用了以下代码...

     table.$('input[type="checkbox"]').each(function () {
         if (!$.contains(document, this)) {
          if (this.checked) {
            previousVal = previousVal + ',' + this.value;
           }
         }
     });  
    

    现在,为了获取选定的搜索值,我使用了之前发布的代码。那是

     var checkboxes = document.getElementsByName('foo');
     var vals = "";
     for (var i = 0, n = checkboxes.length; i < n; i++) {
         if (checkboxes[i].checked) {
            vals += "," + checkboxes[i].value;
         }
     } 
    

    所以所有选中的复选框的值都是

    var allValues=previousVal+vals;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 2012-07-28
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      相关资源
      最近更新 更多