我是jquery和javascript的新手。目前Iam使用jquery数据表并且需要动态地向我的数据表添加复选框列。我在浏览,发现此链接很有用。但是,下面这个帖子中给出的解决方案在末尾添加了额外的列。但我需要复选框列作为我的第一列。请参阅下面的链接,其中包含我目前正在使用的一个黑客,以添加"" ao数组中的每一行。
请建议我一个更好的解决方案来解决我的问题。我不希望服务器在响应中发送额外的列。
答案 0 :(得分:3)
我假设你正在使用sAjaxSource从服务器获取数据。如果您不想发送额外的列,则可以手动将数据进一步移动一列,但您仍需要在html表中添加一列。像这样:
假设您有一个json格式如下:
{
"aaData":
[
[
"1",
"Alice"
],
[
"2",
"Bob"
]
]
}
你有一个包含3行的表,第一个为复选框保留:
<table>
<thead>
<tr>
<th>Checkbox</th>
<th>Id</th>
<th>Name</th>
</tr>
</thead>
</table>
然后,在创建dataTable时,在aoColumns
中,您必须手动调整每个数据的位置。默认情况下,DataTables只是通过数组索引,从0开始并将其分配给相应的列,所以让我们重新分配它们:
"aoColumns": [
{ "mData": null,
"mRender": function(){
return '<input type="checkbox"/>';
}
},
{ "mData": 0 },
{ "mData": 1 }
]
发送空记录以填充行只会让您避免手动分配mData
。