Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 子行(显示额外/详细信息)--无法在表中显示子行_Javascript_Jquery_Html_Gwt_Datatables - Fatal编程技术网

Javascript 子行(显示额外/详细信息)--无法在表中显示子行

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;">'

我使用Datatables.js(使用JSNI)来显示和隐藏我的表的行信息(它是使用Google web toolkit gwt celltable创建的)。我的要求是单击按钮,我需要迭代表并显示/隐藏信息,但它不起作用

下面是我的代码:

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)添加为新行。。