2015-08-26 59 views
1

我有這樣的定義的數據列的表:如何更改數據源

var table = myEl.DataTable({ 
    paging: false, 
    searching: true, 
    info: false, 
    ordering: true, 
    autoWidth: false, 
    columns: [ 
     {data: 'Name', name: 'Name'}, 
     {data: 'Time', name: 'Time'} 
    ] 

}); 

的飼料這個表是這樣的數據:

{ 
    Name: "Bob", 
    Time: "Wed Aug 26 2015 16:09:52 GMT-0500 (Central Daylight Time)", 
    TimeTwo: "16:09:52" 
} 

所以數據表存儲了整個對象並顯示名稱和時間。

如何將初始化中「列」中定義的數據源切換爲使用TimeTwo而不是Time? (在表獲得數據後)

簡單地說:表加載名稱和時間,但是如何在初始化後將其切換爲使用TimeTwo?動態切換它?

function switchDataSourceForTime(){ 
    // what to do...? 
} 
+0

使用{數據: 'TimeTwo',名稱: 'TimeTwo'}運行的代碼,而不是時間,也許 – Zl3n

+0

這是預init,而不是init之後。我知道我可以以不同的方式初始化數據,但是我在初始化後詢問 – SoluableNonagon

+0

你能更好地解釋你的意思嗎? –

回答

1

您可以使兩列都呈現,但只顯示一個列。事情是這樣的:

<div> 
    Toggle column: 
    <input id="btn" type="button" value="change column value"></input> 
</div> 
<br> 
<div> 
    <table id="table"></table> 
</div> 

var data = 
    [ 
    { 
     Name: "Bob", 
     Time: "Wed Aug 26 2015 16:09:52 GMT-0500 (Central Daylight Time)", 
     TimeTwo: "16:09:52" 
    }, 
     { 
     Name: "Tom", 
     Time: "Wed Aug 25 2015 17:41:23 GMT-0500 (Central Daylight Time)", 
     TimeTwo: "17:41:23" 
    } 
]; 

var table = $("#table").DataTable({ 
    data: data, 
    paging: false, 
    searching: true, 
    info: false, 
    ordering: true, 
    autoWidth: false, 
    columns: [ 
     {data: 'Name', name: 'Name'}, 
     {data: 'Time', name: 'Time'}, 
     {data: 'TimeTwo', name: 'TimeTwo'} 
    ] 

}); 

table.column("2").visible(false); 

$('#btn').on('click', function(e){ 
    e.preventDefault(); 

    var columnTimeTwo = table.column("2").visible(!table.column("2").visible()); 
    var columnTime = table.column("1").visible(!table.column("1").visible()); 

}); 

你可以看到fiddle

+0

這種有訣竅。我希望修改指針,但它可能會做。我會在我的代碼中測試它,明天嘗試它可能會接受。 – SoluableNonagon