我有一个BootstrapTable选择框。我知道你可以使用一个函数来填充选择框中的值。我希望该函数根据第二列(称为Text_example
)的值更改它提供的数组。
因此,在我的示例中,如果该行的Text_example
为1
,则选择框应包含以下数据:[{1:1}]
。如果该行的Text_example
为2
,则选择框应包含以下数据:[{2:2}]
我认为我的问题是我不知道如何将行的数据传递给函数get_values
,因为我的方法似乎不起作用。
完整小提琴: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_example
的值会根据用户在text_example
中选择的内容而发生变化。
更新了JSFiddle:http://jsfiddle.net/4wwv18Lq/4/
答案 0 :(得分:2)
您可以在可引导库上使用oninit处理程序。并通过迭代数据对象来添加可编辑的内容。
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链接 http://jsfiddle.net/km10z2xe/