2016-07-15 67 views
3

我想從模態窗口中的數據表格中按值查找特定的行。 我正在尋找https://datatables.net/reference/type/row-selector,但據我所知,它都基於選擇器或內部ID。 在我的情況下,我有2列,我希望能夠查找特定的行以更新ajax請求後的記錄。如何通過jQuery數據表中的值查找特定行?

success: function (data) { 
       if (data.status_id > 0) { 
        alert(data.info); 
       } else { 
        alert(data.info); 
       } 
       contractsTable.row.add(dataJSON).draw(false); 
     } 

編輯

這裏我的代碼現在 - 我已經建立了自己獨特的rowid和使用selector by id

檢索數據對象

... 
var d = datatable.row(this).data(); 
... set form values and so on 

保存並刷新數據表

$('#contractEditSave').on('click', function (e) { 

     dataJSON = { 
      id: $('#contractEditForm').data('contractid'), 
      member_id: $('#contractEditForm').data('memberid'), 
      member_name: $('#contractEditModalTitle').text(), 
      box_id: $('#contractBox').val(), 
      name: $('#contractName').val(), 
      description: $('#contractDescription').val(), 
      start: $('#contractStart').val(), 
      end: $('#contractEnd').val(), 
      amount: $('#contractAmount').val(), 
      unit: $('#contractUnit').val(), 
      max: 1 
     }; 

     $.ajax({ 
      type: 'POST', 
      url: '/save', 
      data: JSON.stringify(dataJSON), 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (data) { 
       if (data.status_id == 0) 
        datatable.row('#' + dataJSON.id).data(dataJSON); //if update 
        ... 
       } else { 
        datatable.row.add(dataJSON).draw(false); //if insert 
        ... 
       } 



       $("#contractEditModal").modal('hide'); 

      } 
     }); 
    }); 
+0

'search()'是按值查找特定行的方法。請詳細說明「查找」和「特定行」和「值」的含義。代碼不勝感激。 – davidkonrad

+0

我已經添加了一些代碼來獲得目的 – nhaberl

回答

3

您可以使用fnFindCellRowIndexes查找在給定列中保存某些數據的行索引。

然後,您可以使用cell().data() API方法更新單元格。

var table = $('#example').DataTable(); 

var rowId = $('#example').dataTable() 
    .fnFindCellRowIndexes('Angelica Ramos', 0); 

table 
    .cell(rowId, 0) 
    .data('Angelica Ramos (UPDATED)') 
    .draw(false); 

請注意,你需要包括fnFindCellRowIndexes.js除了jQuery的數據表CSS/JS文件。

查看this jsFiddle的代碼和演示。

+0

似乎是最有利的解決方案。無論哪種方式,你都必須自己添加一些過濾。 – davidkonrad

+0

絕對完美的答案... 我所做的雖然是從我的2值中創建一個代理ID,並將其設置爲rowid選項。然後我使用美妙的行(字符串rowid)函數來確定行並將數據作爲一個對象(我必須解析以設置模態表單值)傳遞給.data()函數 - 完美無缺! – nhaberl

相關問題