2015-10-05 88 views
0

我嘗試使用Handsontable插件並希望使用ajax對錶進行排序。HandsonTable從ajax加載排序數據

當我使用columnSorting: true,那裏只有視圖排序和我更新它出錯索引行。

任何人都有想法如何從PHP中排序數據,然後顯示數據結果排序後表?

$container.handsontable({ 
    colHeaders: header(),//["Title", "Description", "Comments"], 
    data : data(), 
    //startRows: 3, 
    columnSorting: true, 
    startCols: 20, 
    rowHeaders: true, 
    colHeaders: true, 
    minSpareRows: 1, 
    contextMenu: true, 
    copyRowsLimit: 100000, 
    beforeChange: function (change, source) { 
    if (source === 'loadData') { 
     return; //don't save this change 
    } 
    if ($('input[name=autosave]').is(':checked')) { 
     $("#dataconsole").html("<p>Please wait ...</p>").hide().fadeIn("slow"); 
     clearTimeout(autosaveNotification); 
     $.ajax({ 
     url: "../php/save_auto.php?cmid=<?php echo $com_id;?>", 
     type: "POST", 
     data: {"changes": change}, //contains changed cells' data 
     success: function (data) { 
      $("#dataconsole").text('Autosaved (' + change.length + ' cell' + (change.length > 1 ? 's' : '') + ')'); 
      if(source !== 'program'){ 
      // reset current cell 
      $("td:contains('=')").text(data); 
      } 
     }//complete 
     }); 
    }//checked 
    }//change 
}); 

回答

0

你可以做的是禁用排序插件,點擊標題,發送請求到你的後端數據和排序參數。你在那裏想要的排序,然後在你的hotInstance返回新data對象和updateSettings像這樣:

hotInstance.updateSettings({ 
    data: newData 
}) 

有了這個,你應該設置去。

+0

哦,我知道了,謝謝! –

+0

但是。我怎麼能得到whick colum排序? –

+0

只需檢查您點擊的標題的值是多少。取決於你如何激活該點擊事件。 – ZekeDroid