我的代码:
jsTypeDate["CTRL-DIV-1265TABLE"]={
"url": "/domainModel/function/",
"tableId":"specialLineTable",
"method":"post",
"pageSize":10,
"sort":false,
"page":true,
"Refresh":false,
"id":"CTRL-DIV-1265",
"btn":true,
"btns":[{"name":"新增","id":"addLineInfo"},{"name":"导出","id":"exportLine"},{"name":"导入","id":"importLine"},
{"name":"模版下载","id":"exportTemp"},{"name":"批量删除","id":"batchDelete"},{"name":"添加","id":"addReqLine"}],
"uniqueId":'ID',
"table_columns":[
{"field":"checkbox","title":"checkbox","checkbox":true},
{"visible":true,"field":"ID","title":"ID"},
{"visible":true,"field":"RESREQNAME","title":"需求名称"},
{"visible":true,"field":"REQCODE","title":"需求编码"},
{"visible":true,"field":"typeName","title":"类型"}
"if_checks":true,
"table_title_text":"",
queryParams:function (params) {
var temp = {
pageSize: params.pageSize,
currentPage: params.pageNumber,
projectId:$('#id').val()==''?$.getParamValue("id"):$('#id').val()
};
return temp;
},
"loadSuccess":""
};
bootstrap_table3(jsTypeDate["CTRL-DIV-1265TABLE"]);
每次调getRowByUniqueId这就报Cannot read property ‘hasOwnProperty’ of undefined at o.getRowByUniqueId,百度上查的说是缺少"uniqueId":‘ID’,结果我加上之后依然报错,因为我的id从后台取回来是大写的所以用大写ID接收数据。
var tableData = $("#specialLineTable").bootstrapTable("getRowByUniqueId",rowId);
无语至极,查看 bootstrap_table3(jsTypeDate[“CTRL-DIV-1265TABLE”]) 这里的源码(部分):
function bootstrap_table3(e){
$('#'+ dataJson.id + " .ctrl-table").bootstrapTable('destroy').bootstrapTable({
url:dataJson.url ,
method: dataJson.method , //使用get请求到服务器获取数据
toolbar :"#btn"+dataJson.tableId,
dataType: "json",
striped: dataJson.bright , // 隔行加亮
singleSelect : dataJson.singleSelect, // 单选checkbox
cache: false, // 不缓存
pagination: dataJson.page, //是否显示分页(*)
sortable: dataJson.sort , //是否启用排序;意味着整个表格都会排序
queryParamsType: "",
queryParams:dataJson.queryParams,
sidePagination: "server",
pageNumber: 1, //初始化加载第一页,默认第一页
showFooter: true,
pageSize: dataJson.pageSize , //每页的记录行数(*)
pageList: [5,10, 25, 50, 100], //可供选择的每页的行数(*)
search: false,
contentType: 'application/json',
strictSearch: true,
showColumns: true,//是否显示所有的列
showRefresh: dataJson.Refresh , //是否显示刷新按钮
minimumCountColumns: 2,
clickToSelect: true,
uniqueId: "id", //每一行的唯一标识,一般为主键列
sortName: 'uid', // 设置默认排序为 name
showHeader:true,
checkbox: true,
sortOrder: "asc", //排序方式
showToggle:true, //是否显示详细视图和列表视图的切换按钮
paginationPreText: "上一页",
paginationNextText: "下一页",
paginationFirstText: "首页",
paginationLastText: "末页",
columns: dataJson.table_columns
});
}
人家已经指定了**uniqueId: “id”**小写的,但控制台明明看到的是uniqueId: “ID”,😵尝试把源码id改成大写的,结果不再报错。定位到错误,但不能改源码呀,索性把id通通改成小写的:
{"visible":true,"field":"id","title":"id"},
uniqueId: “id”,
后台传过来的id也改成小写的才能接收到数据。