Javascript 子行(显示额外/详细信息)--无法在表中显示子行
我使用Datatables.js(使用JSNI)来显示和隐藏我的表的行信息(它是使用Google web toolkit gwt celltable创建的)。我的要求是单击按钮,我需要迭代表并显示/隐藏信息,但它不起作用 下面是我的代码:Javascript 子行(显示额外/详细信息)--无法在表中显示子行,javascript,jquery,html,gwt,datatables,Javascript,Jquery,Html,Gwt,Datatables,我使用Datatables.js(使用JSNI)来显示和隐藏我的表的行信息(它是使用Google web toolkit gwt celltable创建的)。我的要求是单击按钮,我需要迭代表并显示/隐藏信息,但它不起作用 下面是我的代码: function format(d) { return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'
function format(d) {
return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'
+ '<tr>'
+ '<td>Full name:</td>'
+ '</tr>' + '</table>'
;}
$wnd.$(function() {
var table = $wnd.$('#example').DataTable({
"columns" : [
{
"orderable" : false,
"data" : null,
"defaultContent" : ''
},
{
"data" : "firstName"
},
{
"data" : "middleName"
},
{
"data" : "lastName"
},
{
"data" : "age"
},
{
"data" : "empId"
},
{
"data" : "address"
}
],
"order" : [ [ 1, 'asc' ] ]
});
$wnd.jQuery('#btnId').click(function() {
$wnd.$("#example tbody tr").each(function(i) {
var rowNo = table.row(i);
if (rowNo.child.isShown()) {
// This row is already open - close it
console.log("hide-->");
rowNo.child.hide();
}
else {
console.log(rowNo.data());
rowNo.child( format(rowNo.data()) ).show();
}
});
});
});
函数格式(d){
返回“”
+ ''
+'全名:'
+ '' + ''
;}
$wnd.$(函数(){
var table=$wnd.$(“#示例”).DataTable({
“栏目”:[
{
“可订购”:错误,
“数据”:空,
“defaultContent”:”
},
{
“数据”:“名字”
},
{
“数据”:“中间名”
},
{
“数据”:“lastName”
},
{
“数据”:“年龄”
},
{
“数据”:“empId”
},
{
“数据”:“地址”
}
],
“订单”:[[1,‘asc']]
});
$wnd.jQuery('#btnId')。单击(函数(){
$wnd.$(“#示例tbody tr”)。每个(函数(i){
var rowNo=表.行(i);
if(rowNo.child.isShown()){
//此行已打开-关闭它
log(“隐藏-->”;
rowNo.child.hide();
}
否则{
log(rowNo.data());
rowNo.child(格式(rowNo.data()).show();
}
});
});
});
最后我看到了一个不同之处,就是使用GWT创建的表以这种格式生成表结构
<tr __gwt_row="0" __gwt_subrow="0" class="GEUXRR0CPC">
<td class="GEUXRR0COC GEUXRR0CAD GEUXRR0CBD">
<div style="outline-style:none;" __gwt_cell="cell-gwt-uid-16" tabindex="0">
xxx
</div>
</td>
<td class="GEUXRR0COC GEUXRR0CAD">
<div style="outline-style:none;" __gwt_cell="cell-gwt-uid-17">
yyy
</div>
</td>
</tr>
xxx
yyy
因为文本将在
的内部,而
的内部。如何解决这个问题?如何显示/隐藏表中的行?有什么帮助吗
注:
1) 创建了GWT单元表
2) 通过JSNI将JS(Datatables.JS)注入CellTable以扩展或折叠行like()它们不是为协同工作而设计的,或者您构建一个使用Datatables.JS的小部件,或者您只使用GWT小部件,我建议作为一个起点,看看这个示例,它使用了
CellTableBuilder
为了便于参考,已经回答了这些问题
您可能会让它们玩得很好,但我怀疑有人尝试过这样做,您可以尝试使用SuperDev模式调试GWT代码,以查看实际发生的情况。我不理解您的问题。您使用的是Datatables.js还是GWT小部件?到底发生了什么?创建了GWT celltable并注入datatables.js以显示/隐藏行,行。data()方法给出了未定义的异常。感谢Andre的回复。我不能使用cellTablebuilder,我也尝试了这一点…我需要灵活地将不同的容器(Horizontalpanel、verticalpanel、Table、row)添加为新行。。