wenzhixin bootstrap-table detailView(子行)未初始化
wenzhixin bootstrap-table detailView (child row) not initializing
我正在使用文智信bootstrap table并且我正在尝试让另一个bootstrap table在代码中引用的子行中进行初始化作为 'detailView'.
我使用的是数据table,但到目前为止,这似乎更简单、更直接。
我会将键从父行传递到子行。现在我只是使用一个静态 table 我必须在子行之外初始化,现在我只是将它移动到子行,试图让它初始化,然后我将使内容动态化.
数据正在传递,但 table 似乎没有初始化。我想知道我是否需要隐藏一个 table 可以在幕后初始化然后将内容传递给该行的地方(看起来很乱,但我想不出另一种方法来实现这一点)。
我的代码在主 table;
中初始化 detailView
detailView: true,
detailFormatter: 'compExtInfo',
这是我要返回到子行 (detailView) 的内容
function compExtInfo(index, row) {
var pAPI = row.api;
var hOut = '<table data-toggle="table" data-url="./completion/getcompletionext.php?api=49-037-28606">'+
'<thead>'+
'<tr>'+
'<th data-field="api" data-visible=false>API</th>'+
'<th data-field="finalfieldreport">Last Fld Rp</th>'+
'<th data-field="onbase">OnBase</th>'+
'<th data-field="tbg">Tbg</th>'+
'<th data-field="active">Actv</th>'+
'</tr>'+
'</thead>'+
'</table>';
console.log(hOut);
return hOut;
}
这里是 table / 网格,如果单独放置在子 table 之外,它将完全初始化(与上面相同的代码,直接复制并粘贴到函数中)。
<table data-toggle="table" data-url="./completion/getcompletionext.php?api=49-037-28606">
<thead>
<tr>
<th data-field="api" data-visible=false>API</th>
<th data-field="finalfieldreport">Last Fld Rp</th>
<th data-field="onbase">OnBase</th>
<th data-field="tbg">Tbg</th>
<th data-field="active">Actv</th>
</tr>
</thead>
</table>
我终于找到了解决办法,代码如下。
下面列出的子行的主要 table 初始化;
detailView: true,
onExpandRow: function (index, row, $detail) {
compExtInfo($detail, row);}
从主函数调用的函数table;获取行键并传递给 table builder
function compExtInfo($detail, row) {
pAPI = row.api;
buildTable($detail.html('<table></table>').find('table'), pAPI);
}
Table 生成器函数
function buildTable($ext, api) {
$ext.bootstrapTable({
url: './completion/getcompletionext.php?api='+api,
columns: [
{
field: 'api',
visible: false,
title: 'API'
},{
field: 'finalfieldreport',
title: 'Last Fld Rp'
...
]
});
}
来自主要事件 table
table.on('expand-row.bs.table', function (e, index, row, $detail) {
var tableD = $detail.append('<table id="table_' + row["impresora"] + '"></table>').find('table');
tableD.bootstrapTable({
editable: true,
showHeader: false,
idField: 'ip',
method: 'get',
dataType: "json",
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=get&impresora=' + row['impresora'],
columns: [
{
title: 'IMPRESORA',
field: 'impresora',
halign: 'left',
valign: 'middle',
visible: false
},
{
title: 'IP',
field: 'ip',
halign: 'left',
valign: 'middle',
sortable: true,
editable: {
type: 'text',
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=updateip&impresora=' + row['impresora'],
ajaxOptions: {
type: 'POST'//,
}
, success: function (text) {
if (text === "success") {
} else
alert(text);
}
}
},
{
title: 'PREDETERMINADA',
field: 'sw_predeterminada',
halign: 'left',
valign: 'middle',
sortable: true,
editable: {
type: 'text',
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=updateip&impresora=' + row['impresora'],
ajaxOptions: {
type: 'POST'//,
}
, success: function (text) {
if (text === "success") {
} else
alert(text);
}
}
}
]
});
});
我正在使用文智信bootstrap table并且我正在尝试让另一个bootstrap table在代码中引用的子行中进行初始化作为 'detailView'.
我使用的是数据table,但到目前为止,这似乎更简单、更直接。
我会将键从父行传递到子行。现在我只是使用一个静态 table 我必须在子行之外初始化,现在我只是将它移动到子行,试图让它初始化,然后我将使内容动态化.
数据正在传递,但 table 似乎没有初始化。我想知道我是否需要隐藏一个 table 可以在幕后初始化然后将内容传递给该行的地方(看起来很乱,但我想不出另一种方法来实现这一点)。
我的代码在主 table;
中初始化 detailViewdetailView: true,
detailFormatter: 'compExtInfo',
这是我要返回到子行 (detailView) 的内容
function compExtInfo(index, row) {
var pAPI = row.api;
var hOut = '<table data-toggle="table" data-url="./completion/getcompletionext.php?api=49-037-28606">'+
'<thead>'+
'<tr>'+
'<th data-field="api" data-visible=false>API</th>'+
'<th data-field="finalfieldreport">Last Fld Rp</th>'+
'<th data-field="onbase">OnBase</th>'+
'<th data-field="tbg">Tbg</th>'+
'<th data-field="active">Actv</th>'+
'</tr>'+
'</thead>'+
'</table>';
console.log(hOut);
return hOut;
}
这里是 table / 网格,如果单独放置在子 table 之外,它将完全初始化(与上面相同的代码,直接复制并粘贴到函数中)。
<table data-toggle="table" data-url="./completion/getcompletionext.php?api=49-037-28606">
<thead>
<tr>
<th data-field="api" data-visible=false>API</th>
<th data-field="finalfieldreport">Last Fld Rp</th>
<th data-field="onbase">OnBase</th>
<th data-field="tbg">Tbg</th>
<th data-field="active">Actv</th>
</tr>
</thead>
</table>
我终于找到了解决办法,代码如下。
下面列出的子行的主要 table 初始化;
detailView: true,
onExpandRow: function (index, row, $detail) {
compExtInfo($detail, row);}
从主函数调用的函数table;获取行键并传递给 table builder
function compExtInfo($detail, row) {
pAPI = row.api;
buildTable($detail.html('<table></table>').find('table'), pAPI);
}
Table 生成器函数
function buildTable($ext, api) {
$ext.bootstrapTable({
url: './completion/getcompletionext.php?api='+api,
columns: [
{
field: 'api',
visible: false,
title: 'API'
},{
field: 'finalfieldreport',
title: 'Last Fld Rp'
...
]
});
}
来自主要事件 table
table.on('expand-row.bs.table', function (e, index, row, $detail) {
var tableD = $detail.append('<table id="table_' + row["impresora"] + '"></table>').find('table');
tableD.bootstrapTable({
editable: true,
showHeader: false,
idField: 'ip',
method: 'get',
dataType: "json",
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=get&impresora=' + row['impresora'],
columns: [
{
title: 'IMPRESORA',
field: 'impresora',
halign: 'left',
valign: 'middle',
visible: false
},
{
title: 'IP',
field: 'ip',
halign: 'left',
valign: 'middle',
sortable: true,
editable: {
type: 'text',
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=updateip&impresora=' + row['impresora'],
ajaxOptions: {
type: 'POST'//,
}
, success: function (text) {
if (text === "success") {
} else
alert(text);
}
}
},
{
title: 'PREDETERMINADA',
field: 'sw_predeterminada',
halign: 'left',
valign: 'middle',
sortable: true,
editable: {
type: 'text',
url: baseUrl + 'app_modules/Cups/classes/admin_impresoras.php?accion=updateip&impresora=' + row['impresora'],
ajaxOptions: {
type: 'POST'//,
}
, success: function (text) {
if (text === "success") {
} else
alert(text);
}
}
}
]
});
});