2017-05-11 29 views
0


我可以传递更多的数据通过JSON对象到数据表,不会受数据表呈现?数据表:通过JSON传递其他/隐藏行的信息

较长的描述
我在使用Internet Explorer的问题(叹气)渲染数据表中令人沮丧的缓慢庄园。在浏览网页寻找解决方案时,我认为最好的选择是我应该将表格的创建从HTML转移到JSON。

我们的HTML行目前是这样的:

<tr their_ID="{$data[$i]['their_ID']}" class="$no_select $exists"> 
    <td>$ii.</td> 
    <td surname>{$data[$i]['surname']}</td> 
    <td forename>{$data[$i]['forename']}</td> 
    <td title>{$data[$i]['title']}</td> 
    <td gender>{$data[$i]['gender']}</td> 
    <td email>{$data[$i]['email']}</td> 
    <td import class="centerText"><input type="checkbox" $checked ourID="$ourID" /></td> 
</tr> 

的JSON似乎很大,如果你逝去的是原始数据。但是对于其余的功能来说,我们需要传递每个行和表单元的所有附加数据。

如果我有以下几点:

{ 
    "DT_RowId": "1234", 
    "ii": "$ii", 
    "surname": "Surname", 
    "forename": "Forename", 
    "title": "Title", 
    "gender": "M", 
    "email": "[email protected]", 
    "import": "$ourID" 
}, 

使用createdRow回调我可以设置最使用JS行和单元格的数据。该ID可以被采用并重命名为自定义属性their_ID。这些键名可以用来将自定义属性添加到单元格中。我可以使用JS等将导入单元格转换为复选框。确定是否可以选择该行($no_select)也可以使用JS完成。

我们留下的问题是:

  1. 我们如何通过服务器端来确定用户是否在我们的数据库中存在与否的数据?

是否有可能通过JSON传递额外的数据,这将不会由数据表呈现,但可供我们使用? $exists$checked(就JS而言,它实际上可能是单个变量)

例如,理论上:

{ 
    "DT_RowId": "1234", 
    "ii": "$ii", 
    "surname": "Surname", 
    "forename": "Forename", 
    "title": "Title", 
    "gender": "M", 
    "email": "[email protected]", 
    "import": $ourID, 
    "hiddenClientSideData": { 
    "exists": 1|0, 
    "checked": 1|0 
    } 
}, 

感谢您的任何帮助,如果您需要任何澄清请问。

回答

1

您应该可以使用ColumnDefs并将visible属性设置为false。为该数据创建一个列。然后针对该列,并使其不可见

https://datatables.net/reference/option/columnDefs

您将创建两个附加次并在表定义中的两个addadditional TD细胞。然后,只需将数据与其他属性一起发送即可。首先在用户界面上呈现它,以确保它们都能正确发送。然后使用columnDefs来定位并隐藏最后两列。你仍然可以使用数据表API来获取数据,如果需要的话可以采取行动

+1

延迟响应道歉。工作重点让我在其他地方。尽管如此,这完成了这项工作。谢谢。这不是一个理想的解决方案,我希望Datatables增加一种更灵活的方式来发送额外的数据,但它现在可以完成这项工作。 – joe92