簡體   English   中英

jQuery DataTables默認列值

[英]jQuery DataTables default column value

我試圖在jQuery數據表中包含一個不可見的列,該列可以設置為默認true來代替在數據源中遇到的null或未定義。

假設我正在使用6列的DataTable。 前5列可見。 第六列設置為不可見。 而且,無論數據源對象是否具有對應的密鑰,它都必須包含true或false。 在DataTable的列定義中,我嘗試了此操作,但是沒有用。

{ "defaultContent": true, "data": "existing", "visible": false }

根據API,我認為defaultContent僅在data為null時有效。 也許這就是為什么它不起作用。 我提供了用於初始化DataTable的HTML,JS數據和JS代碼。 請注意,一旦加載並渲染了DataTable,我就會動態添加一行並重新繪制。 該行的數據包含第6列屬性,可以對其進行設置。

HTML:

<div id="demo">
</div>

JavaScript(數據初始化):

var dataSet = [
    {'engine':'Webkit','browser':'Safari 1.2','platform':'OSX.3','version':'125.5','grade':'A'},
    {'engine':'Other browsers','browser':'All others','platform':'-','version':'-','grade':'U'}
];

JavaScript(數據表的創建和初始化):

$('#demo').html('<table class="display" id="example"></table>');

$('#example').dataTable( {
    "data": dataSet,
    "columns": [
        { "sortable" : false, "data": null, "defaultContent": "<button>Select</button>", "title" : "Choose"
        },
        { "title": "Engine", "data": "engine" },
        { "title": "Browser", "data": "browser" },
        { "title": "Platform", "data": "platform" },
        { "title": "Version", "data": "version", "class": "center" },
        { "title": "Grade", "data": "grade", "class": "center" },
        { "defaultContent": true, "data": "existing", "visible": false }
    ],
    initComplete: function(oSettings, json) {
      console.log('drawing complete');
      if (oSettings.fnRecordsTotal() > 1) {
        $('#example').DataTable().row.add({
          'engine' : 'Presto',
          'browser' : 'Opera 7.5',
          'platform' : 'Win 95+ / OSX.2+',
          'version' : '-',
          'grade' : 'A',
          'existing' : false
        }).draw();
      }
    }
} );   

這是上述示例的JSFiddle 如果單擊前兩行中的“選擇”按鈕,它將返回undefined 第三行上的“選擇”按鈕產生false 我希望前兩行的“選擇”按鈕產生true

如果數據集對象中沒有鍵/值,如何為第六列(不可見)設置默認值?

因為它返回undefined existing不存在dataSet dataSet是靜態的, defaultContent不會將其值填充到原始dataSet 您真正想要的是隱藏列的值,該列將包含defaultContent或動態添加的existing值。

var row = $('#example').DataTable().row( $(this).parents('tr') ),
    index = row.index(),
    data = row.cell(index, 6).data();

alert(data);

將返回truetruefalse 分叉的小提琴-> http://jsfiddle.net/vsx7uxnf/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM