2017-05-11 67 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