更新Jquery数据库单元格值

时间:2015-09-04 15:00:56

标签: jquery datatable

我有一个带有很多跨度的jquery数据表。该表使用来自DB的ajax数据加载,然后动态更新跨度以匹配用户更改值时具有相同类的所有其他跨度。

我遇到的问题是,当我更新跨度时,数据表似乎并不知道它已更新。

例如,如果我将值更新为Document findDocument2=new Document(); Document findDocument3=new Document(); ArrayList<Document> a=new ArrayList<>(); findDocument2.append("name.name", "XYZ"); findDocument3.append("name.age", "19"); a.add(findDocument2); a.add(findDocument3); Document resDoc = mongoDatabase.getCollection("entity").find(Filters.and(findDocument2,findDocument3)).first(); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>> "+resDoc); ,然后搜索555,则不会返回结果。

我尝试使用555,但似乎无效。如何在不破坏和重建表的情况下更新所有单元格值的数据表。摧毁只是看起来像是大规模的过度杀伤。

2 个答案:

答案 0 :(得分:5)

我已经打了一段时间了,我认为这可能与数据表使用的缓存有关。我发现的是,如果你找到了单元格,那么将data属性设置为它工作的单元格的html值。到目前为止,你会做这样的事情。

var UpdateTD = $(".changemade").parent('td');
table.cell( UpdateTD ).data( UpdateTD.html()).draw();

这是我发现使其发挥作用的唯一方法。它似乎并不是最好的方法,但似乎确实有效。这是更新的小提琴,显示它在行动中https://jsfiddle.net/jebwq9yL/1/

答案 1 :(得分:1)

table定义为像这样的全局变量

HTML更新 使用<td class="changemade">Tiger Nixon</td>。从代码中删除了跨度。要访问一个单元格,你必须给td而不是span的类名或id。

var table;
$(document).ready(function() {
  ........
  // DataTable
  table = $('#example').DataTable();
  ........
  });
$('.changebutton').on('click', function () {
    // update cell value based on selector
    table.cell($('.changemade')).data('MEOW!').draw()
});
});
//and use this code to listen the draw event.
table.on('draw', function() {
  alert('table has been re-drawn')
});

DEMO

由于变量tablesearch function在同一范围内,但table.draw超出了范围,因此无法正常工作