Datatable调用row.add().draw()后仅显示首字母问题排查求助
问题根因
Datatable的row.add()方法要求传入的行数据为数组格式或与表格列配置匹配的对象格式,不支持直接传入单个字符串。
你直接传入字符串时,Datatable会自动将字符串拆解为单个字符组成的数组,每个字符对应表格的一列。如果你的表格仅配置了展示第一列,自然只会显示字符串的第一个字符。
解决方案
情况1:表格仅需展示username一列
将你传入的字符串外层包裹一层数组即可,修改后代码如下:
myTable.clear(); // 建议循环添加完成后统一调用draw,避免多次重绘影响性能 for (var i = 0; i < data.response.length; i++) { console.log(data.response[i]['username']); // 字符串外层加[]转为数组 myTable.row.add([data.response[i]['username']]); } myTable.draw();
测试代码对应修改为:myTable.row.add(['asdqwe']).draw();
情况2:表格为多列配置
按你定义的表格列顺序,将每列对应的值按顺序放入数组传入即可,示例如下(假设第二列要展示用户年龄):
myTable.row.add([ data.response[i]['username'], data.response[i]['age'] ]);
如果你的Datatable初始化时给列配置了data属性绑定字段,也可以直接传入对应结构的对象:
// 假设列配置为 columns: [{data: 'username'}, {data: 'age'}] myTable.row.add(data.response[i]);
内容的提问来源于stack exchange,提问作者natsumiyu
相关产品推荐
相关产品推荐

