2014-03-26 93 views
1

我是jquery和javascript的新手。目前Iam使用jQuery数据表,并且需要动态地将复选框列添加到我的数据表中。我在浏览时发现这个链接很有用。但是,下面这个线程中给出的解决方案在最后添加了附加列。但我需要复选框列作为我的第一列。请参阅下面的链接,其中包含我正在使用的最后一个hack,目前在数组中添加“”ao每行。jquery datatables添加额外的列

Link to related query

请建议我一个更好的解决方案,以解决我的问题。我不希望服务器在响应中发送额外的列。

回答

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> 

然后,在创建数据表时,在您的aoColumns中,您必须手动调整每个数据段的位置。默认情况下,数据表只是经过数组索引,从0开始,并将其分配给相应的列,所以让我们重新分配:

"aoColumns": [ 
     { "mData": null, 
      "mRender": function(){ 
      return '<input type="checkbox"/>'; 
      } 
     }, 
     { "mData": 0 }, 
     { "mData": 1 } 
    ] 

发送一个空的记录,以填补行只是让你避免手动分配mData

+0

我跟着您的代码段,但我得到了如下错误我的控制台上: 语法错误:无效的属性ID: {“MDATA”:0}, 请帮我在哪里,我错了。 – Pradeep

+0

'mRender'部分后我忘记了大括号。固定。 –