需求:在点击一按钮后,对选中的行对应的某一列中的值进行更改。并且,更改后能对该列进行排序
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属性值就行了
分享到:
相关推荐
个人宝贵经验总结:修改DataTable的某一行某一列的值
Jquery dataTable API 中文文档 word版 好用实在
datatable 排序,可以去看看学习下。
最新项目要求实现前台排序,用原生的datatable.js总是不兼容,js控制絮乱;我们对其进行了重写,重写后可正常使用,配置按正常的配置就可以
在展现表格时,期待单元格的宽度能适应行记录中的最长值,此方法解决获取Datatable内各字段在行记录中的最长值的问题,用于设置列宽,从而放弃浏览器的自适应宽度的鸡肋方法。
对于这个问题,自己郁闷了四五天的时间,之后终于做出来了,分享一下. 主要是从操作内存中的datatable表,而非直接操作数据库,筛选,去除重复行,sum求和,根据某个字段进行排序等等操作....
Datagridview与Datatable同步排序
特效页面,JS特效特效页面,JS特效特效页面,JS特效特效页面,JS特效
修改DataTable的列名的三种方法
jquery datatable api chm 中文
ASP.NET 页面中 DataTable 导出EXCEL的例子
一个简单的datagridview绑定datatable数据,添加合计行,后可排序.
jsf2.0 dataTable单行修改例子,包含了jsf dataTable修改一行数据的方法
分页、排序、检索 Datatable与json之间数据转换,一个详细完整的例子!,希望对大家有用。
一般来说,在C#中要对Datatable排序,可使用DefaultView的Sort方法。需要先获取Datatable的DefaultView,然后设置得到的Dataview的sort属性,最后用视图的ToTable方法将排好序的dataview导出为Datatable。 代码如下...
利用C#saveFileDialog控件,把DataTable中的数据保存输出的文本格式
第一个页面添加数据。绑定到第二个页面去。是利用DataTable。不是数据库的。
在java下可用的datatable组件,提供了jar包和调用例子。jar包从国外一个网站找到的,可惜找遍了也没找到怎么使用,费了半天挨个试,终于知道怎么用了(从resultset到datatable,加行,加列,赋值,取值,循环显示等...
DataTable.Compute方法使用实例 DataTable.Compute强大的功能 C#中表达式的计算 详细说明:http://www.our-code.com/news/2010718/n458047.html
将Excel数据读取到DataTable中,通过ReadExcelToDatatable方法读取