我正在使用this bootstrap库,实际上一切正常。问题是,bootstrap-table能否依赖JSON文件自动生成头?我试图找到有关这方面的任何信息,但不幸的是。现在我的标题是从脚本生成的,例如:
function initTable() {
$table.bootstrapTable({
height: getHeight(),
columns: [{
field: 'field1',
title: 'title1',
sortable: true
}, {
field: 'field2',
title: 'title2',
sortable: true
}, {
field: 'field3',
title: 'title3',
sortable: true
}, {
field: 'Actions',
title: 'Item Operate',
align: 'center',
events: operateEvents,
formatter: operateFormatter
}
],
formatNoMatches: function () {
return "This table is empty...";
}
});
有人如何自动生成标题?
答案 0 :(得分:2)
从一个扁平的json文件填充是绝对可能的,但比单独的(苗条的和预先的)数据请求更难,因为标题和其他属性'可能'必须被猜到。
Ill显示基本方法,然后告诉你如何使用它可以使用平面文件,你可以或CANT影响格式(重要的一点,请参见结尾处的注释)。
制作一个单独的ajax请求,填充var colArray = []
,或直接传入完成的回调。
例如,在回调(.done()
,.success()
,ect)中也调用包含表的js init代码的函数。
你可能会看起来像这样:
function initTable(cols) {
cols.push({
field: 'Actions',
title: 'Item Operate',
align: 'center',
events: operateEvents,
formatter: operateFormatter
});
$("#table").bootstrapTable({
height: getHeight(),
columns: cols,
formatNoMatches: function () {
return "This table is empty...";
}
});
}
$(document).ready(function(){
$.ajax({
method: "POST",
url: "data/getColumns",
// data: { context: "getColumns" }
datatype: "json"
})
.done(function( data ) {
console.log( "getCols data: ", data );
// Prep column data, depending on what detail you sent back
$.each(data,function(ind,val){
data.sortable = true;
});
initTable(data);
});
});
现在,如果你实际上坚持使用平面文件,请将ajax指向那个,然后意识到问题是你是否可以编辑内容。
如果是,则在其中添加columns
数组,其中包含帮助构建列数组所需的任何基础数据(标题,字段名称等)。然后,如果需要,可以使用responseHandler
去除列数组,如果它在加载到表中时会导致问题。
http://bootstrap-table.wenzhixin.net.cn/documentation/#table-options http://issues.wenzhixin.net.cn/bootstrap-table/(点击“查看来源”)。
如果不是,你不能编辑内容,只有字段名,那么请在.done()
处理程序中使用你需要的任何字符串操作(str_replace()
,等等)你想要的方式。