2017-01-11 100 views
2

我使用DataTable來格式化表格。我也使用他們的按鈕插件。我正在嘗試創建一個自定義按鈕,以重定向到另一個頁面,我將創建一個Excel文件供下載。我只是不知道如何設置href。我試過這個:如何在DataTables按鈕中設置href?

$.fn.dataTable.ext.buttons.export = 
{ 
    className: 'buttons-alert', 
    text: "Export All Test III", 
    action: function (e, dt, node, config) 
    { 
     var SearchData = dt.rows({ filter: 'applied' }).data(); 
     var OrderData = dt.order(); 
     alert("Test Data for Searching: " + SearchData); 
     alert("Test Data for Ordering: " + OrderData); 
    }, 
    href: './AjaxHandler.php' 
}; 

href被忽略並且未設置。我需要設置href

我該怎麼做?

我可以在開發工具看到在Firefox中,它具有這樣的特性,但它被設置爲#像這樣:

enter image description here

編輯

因爲我已經嘗試設置href初始化後如下所示:

$('.dt-button.buttons-alert').attr('href', './AjaxHandler.php'); 


document.querySelector('.buttons-alert').setAttribute('href', './AjaxHandler.php'); 

兩者之一se工作,雖然,href仍然只顯示#。

回答

2

我已經得到它的工作,有點。我仍然無法獲取按鈕中設置的href。我能做的是這樣的:

$.fn.dataTable.ext.buttons.export = 
{ 
    className: 'buttons-alert', 
    id: 'ExportButton', 
    text: "Export All Test III", 
    action: function (e, dt, node, config) 
    { 
     //This will send the page to the location specified 
     window.location.href = './AjaxHandler.php'; 
    } 
}; 

即使它以不同的方式完成同樣的事情。

+0

這是一個救命的黑客對我來說.. 感謝哥們。 也讓我知道,如果你遇到了這種方法的任何錯誤。 – Swaps

+0

我剛更新了我在網站上的工作。到目前爲止,它沒有任何問題。 – Mike

0

dataTables的選項中沒有「href」。 按鈕只有這些選項可以使用: https://datatables.net/reference/option/#buttons

+0

是的,我已經看過那個頁面。當然,自從頁面中有'href'以後,有一種方法可以訪問它並將其設置爲我想要的內容。 – Mike

+0

初始化按鈕後,你總是可以通過jquery動態地添加href鏈接.. $(「。dt-button.buttons-alert」)。attr(「href」,「./AjaxHandler.php」) – NeuTronas

+0

我試過這個'$ ('dt-button.buttons-alert')。attr('href','./AjaxHandler.php');'並沒有什麼區別,'href'仍然是# – Mike

0

這是我做了什麼來解決這個問題。這使我的「添加記錄」按鈕在數據表DOM

$('#myTable').DataTable({ 
    ..., 
    buttons: [ 
     { 
      text: '<i class="fa fa-plus"></i>', 
      className: 'btn btn-default btnAddJob', 
      titleAttr: 'Add a new record', 
      init: function (dt, node, config) { 
       $(node).attr('href', 'put/your/href/here') 
      } 
     } 
    ] 
})