根据另一列填充 BootstrapTable x-editable select 框

Populate BootstrapTable x-editable select box based on another column

我有一个 BootstrapTable select 盒子。我知道您可以使用一个函数来填充 select 框中的值。我希望该函数根据第二列(称为 Text_example)的值更改它提供的数组。

因此在我的示例中,如果该行的 Text_example1,则 select 框应包含以下数据:[{1:1}]。如果该行的 Text_example2,select 框应包含以下数据:[{2:2}]

我认为我的问题是我不知道如何将行的数据传递给函数 get_values,因为我的方法似乎不起作用。

完整 Fiddle: http://jsfiddle.net/goxe6ehg/

var data = [{"Text_example": 1},{"Text_example": 2}];

function get_values(data) {
    if (data['Text_Example'] === 1) {
    return [{1:1}];
  }
  else {
    return [{2: 2}]
  }

}

$('#table').bootstrapTable({
  columns: [
   {
      field: 'Select_example',
      title: 'Select_example',
      editable: {
        type: 'select',
        source:  get_values($('#table').bootstrapTable('getData'))
      }
    },
    {
      field: 'Text_example',
      title: 'Text_example'
    }
  ],
  data: data
});

编辑:我过度简化了示例。我不需要 text_example 的静态字段,而是需要它是一个 select 框,其中 select_example 的值会根据用户在 [=] 中编辑的 select 的内容而变化20=].

已更新 JSFiddle:http://jsfiddle.net/4wwv18Lq/4/

您可以在 bootstraptable 上使用 oninit 处理程序library.And通过遍历数据对象添加可编辑项。

var data = [{"Text_example": 1},{"Text_example": 2}];

$('#table').on('editable-init.bs.table', function(e){
    var $els =  $('#table').find('.editable');
     $els.each(function(index,value){
            $(this).editable('option', 'source', data[index])
     });

});
$('#table').bootstrapTable({
  columns: [
   {
      field: 'Select_example',
      title: 'Select_example',
      editable: {
        type: 'select'
      }
    },
    {
      field: 'Text_example',
      title: 'Text_example'
    }
  ],
  data: data
});

JSfiddle link http://jsfiddle.net/km10z2xe/