`

[datatable]在页面中更改cell值后再排序

 
阅读更多

需求:在点击一按钮后,对选中的行对应的某一列中的值进行更改。并且,更改后能对该列进行排序

 

datatable提供了单元格编辑扩展,但这不是这个需求所需要的,我们不需要编辑单元格,只要更改单元格中的值。

更改单元格的值很简单,使用jquery的搜索查到选中的行找到要改的列,更改html即可。但是这样更改后不能正确的进行该列的排序。其排序还是以未改之前的为准。

 

经研究得到解决方案。注意两点:1.使用datatable提供的api来改单元格值 2.行定位时一定要以初始化时的行序列进行定位

 

api

datatable=$(".datatable-sort").dataTable( {"bSort": true});

datatable.fnUpdate('new value',rownum,colnum)

 注意这里的rownum,这一定要是初始化时的行序列。假如初始化时id为1的行在第一行,那么这一行的rownum就是0

如果再以别的列来排序,id为1的行被排到了第3行,按理说这时的rownum应该是4了。但在调用api时,这里的rownum还应该是0,不然你就改了别的行中的值了。

 

如何来确认行的rownum呢,我也给一个自己的思路和解决方案。我会在初始化的每行元素中加一个属性如 rowindex,这个属性值就是行在循环渲染时的序列值。这样在使用jquery取到被选中的行时,我不使用jquery forEach中的序列值,而是使用行中的rowindex属性值就行了

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics