如何在jQuery中创建具有标题行和可折叠详细信息行的表

Mubu开发者

我正在从jQuery Ajax调用中的Web服务接收数据,如下所示:

[
    {
        "grpRecord":{
            "Group1":"17658",
            "Group2":"0"
        }, 
        "lstRecords":[
            {
                "NA":"0",
                "GROUP1":"17658",
                "GROUP2":"0",
                "Task_Name":"01 Internal Plaster ",
                "material_name":"CEMENT 43 GRADE",
                "Est_Qty":"100.0000",
                "Rate":"300.0000",
                "EST_Mat_Amt":"30000.00000000"
            },{
                "NA":"0",
                "GROUP1":"17658",
                "GROUP2":"0",
                "Task_Name":"01 Internal Plaster ",
                "material_name":"CEMENT 43 GRADE ",
                "Est_Qty":"220000.0000",
                "Rate":"300.0000",
                "EST_Mat_Amt":"66000000.00000000"
            },{
                "NA":"0",
                "GROUP1":"17658",
                "GROUP2":"0",
                "Task_Name":"01 Internal Plaster ",
                "material_name":"NATURAL SAND ",
                "Est_Qty":"60000.0000",
                "Rate":"700.0000",
                "EST_Mat_Amt":"42000000.00000000"
            }
        ]
    }
]

这只是一条记录,我正在收录多条这样的记录。这里的“ grpRecord”应该是表头,而“ lstRecords”应该包含行详细信息。现在我的问题是我想将“ grpRecord”显示为表行,将“ lstrRecords”显示为行详细信息作为可折叠行详细信息。

到目前为止,我的代码是这样的:

  <script type="text/javascript">
        function callAjax() {

            //Ajax call for drill down data START
            $.ajax({
                type: 'POST',
                dataType: 'json',
                cache: false,
                url: '@Url.Action("index", "test")',
                data: {},
                success: function (response, textStatus, jqXHR) {


                    alert(response);
                    // document.write(JSON.stringify(response));
                    bindTable(response);

                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert('Error - ' + errorThrown);
                }
            });


            //Ajax call for drill down data END


            //function to bind json to table STart
            function bindTable(response) {

                var data = response;
                alert("Response recieved");
                alert(data);
                for (var i = 0; i < data.length; i++) {

                    bindHeader(data[i]);


                        drawHeader(data[i], ParentID);

                }

                $('.DynamicTable').html('<tbody>' + createTable("0").join('') + '</tbody>');





            }

            //function to bind json to table  End
            //$("#tabHead").append('<li ><a data-toggle="tab" href="#drillData">Drill Down</a></li>'); //creating tab head
        }

        function bindHeader()
        {
//code to bind header

        }

        function bindDetail()
        {

//code to bind details
}
    </script>
Mubu开发者

找到了解决方案,这是完整的Ajax代码

 //Ajax call for drill down data START
            $.ajax({
                type: 'POST',
                dataType: 'json',
                cache: false,
                url: '@Url.Action("GetWBSReportDrillDown", "WBSBudget")',
                data: { FieldId: feildId, ProjNo: ProID, TaskNo: taskNo, TreeId: treeId, FromDate: FrmDate, ToDate: TDate, UserName: "aa", CompName: "aa" },
                success: function (response, textStatus, jqXHR) {


                    //alert(response);
                    // document.write(JSON.stringify(response));
                    bindTable(response);

                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert('Error - ' + errorThrown);
                }
            });


            //Ajax call for drill down data END


            //function to bind json to table STart
            function bindTable(response) {

                var data = response; 
                 alert(data);
                function createTable(parentID) {
                    return data.filter(function (node) { return (node.parent_id === parentID); }).sort(function (a, b) { return a.name > b.name }).map(function (node) {

                        return '<tr id="' + node.id + '" level="' + node.depth + '" class="' + node.depth + '"><td type="' + node.type + '"  id="' + node.id + '" level="' + node.depth + '" pid="' + node.parent_id + '" level="' + node.depth + '" ><span class="level' + node.depth + ' spn" ><img src="Design/images/plus.gif" class="testnode" ></img></span><span class="nodename" id="' + node.id + '" nodetype="' + node.type + '"  title="' + node.name + '">' + node.name + '</span></td><td>' + node.id + '</td><td>' + node.type + '</td></tr>';

                    });
                }

                $('.DynamicTable').html('<tbody>' + createTable("0").join('') + '</tbody>');

                $(document).on("click", ".testnode", function (e) {

                    if (($(this).attr('src')) == 'Design/images/plus.gif') {

                        $(this).attr('src', 'Design/images/minus.gif');
                        var val = $(this).parent().parent().parent();
                        var parentID = $(this).parent().parent().parent().attr('id');
                        $(val).after(createTable(parentID).join(''));
                    }
                    else {
                        $(this).attr('src', 'Design/images/plus.gif');

                        var level = $(this).parent().parent('td').attr('level');
                        var tr = $(this).parent().parent().parent('tr');

                        while (tr.next().prop("tagName") == "TR") {
                            // var level = tr.next().children().attr("level");
                            if (tr.next().children().attr("level") != level) {
                                //   alert(tr.next().children().attr("level") + " != " + level);
                                if (tr.next().children().attr("level") >= level) {
                                    tr.next().hide();
                                    //  alert(tr.next().children().attr("level") + " > " + level);
                                }
                            }
                            else {
                                break;
                            }
                            tr = tr.next();
                            e.stopPropagation();
                        }
                        e.stopPropagation();
                    }
                });



            }

            //function to bind json to table  End
            $("#tabHead").append('<li ><a data-toggle="tab" href="#drillData">Drill Down</a></li>'); //creating tab head
        });



    });

    <div id="drillData" class="tab-pane fade">     
<div class="table-responsive">
  <table class="table table-hover DynamicTable" ></table>
</div>  
  </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在jQuery中创建具有标题行和可折叠详细信息行的表

来自分类Dev

如何创建具有可折叠行的表

来自分类Dev

如何在Jquery中获取选定的行详细信息

来自分类Dev

折叠数据网格中的详细信息行

来自分类Dev

如何从标题和详细信息类创建Json

来自分类Dev

如何在数据表中创建可折叠列标题?

来自分类Dev

如何在主详细信息KendoUI网格中的所有详细信息网格中只有一个选定行?

来自分类Dev

SQL创建一个报告,为每个组提供详细信息和摘要行,并具有不同的计数

来自分类Dev

如何创建带有标题和详细信息部分的表单

来自分类Dev

如何在RDLC报告中对标题和详细信息进行分组

来自分类Dev

SQL Server 2014:如何在 csv 导出中包含标题和详细信息

来自分类Dev

动态展开带有子菜单和嵌套视图的详细信息模板到Expandeble表行中

来自分类Dev

从具有重试详细信息(ID和重试计数)的表中检索失败的作业

来自分类Dev

重定向时如何获取表行详细信息

来自分类Dev

从列中获取详细信息值以创建新行

来自分类Dev

显示表中特定行的详细信息

来自分类Dev

如何在Cytoscape中创建“详细信息面板”?

来自分类Dev

如何在Microsoft Access中创建“详细信息”按钮?

来自分类Dev

如何在Linux中查找目录创建的详细信息

来自分类Dev

如何在Laravel中让具有特定角色的用户及其个人资料详细信息

来自分类Dev

如何在 SQL 中检查具有相同操作的多行的条件?(查看详细信息)

来自分类Dev

如何在单行中获取具有不同详细信息的 SQL 副本。?

来自分类Dev

在Bootstrap中创建可折叠的行

来自分类Dev

Crystal Reports如何引用“详细信息”部分中的行?

来自分类Dev

如何在android中显示带有图像和详细信息的网站网址

来自分类Dev

如何在数据表行详细信息中使用从服务器JSON接收的信息?

来自分类Dev

如何在T-SQL中折叠具有重复ID的表行

来自分类Dev

通过在其他列中添加详细信息来标识R中具有完整数据的行

来自分类Dev

如何在HTML中创建具有可变和固定列宽以及分组标题的表?

Related 相关文章

  1. 1

    如何在jQuery中创建具有标题行和可折叠详细信息行的表

  2. 2

    如何创建具有可折叠行的表

  3. 3

    如何在Jquery中获取选定的行详细信息

  4. 4

    折叠数据网格中的详细信息行

  5. 5

    如何从标题和详细信息类创建Json

  6. 6

    如何在数据表中创建可折叠列标题?

  7. 7

    如何在主详细信息KendoUI网格中的所有详细信息网格中只有一个选定行?

  8. 8

    SQL创建一个报告,为每个组提供详细信息和摘要行,并具有不同的计数

  9. 9

    如何创建带有标题和详细信息部分的表单

  10. 10

    如何在RDLC报告中对标题和详细信息进行分组

  11. 11

    SQL Server 2014:如何在 csv 导出中包含标题和详细信息

  12. 12

    动态展开带有子菜单和嵌套视图的详细信息模板到Expandeble表行中

  13. 13

    从具有重试详细信息(ID和重试计数)的表中检索失败的作业

  14. 14

    重定向时如何获取表行详细信息

  15. 15

    从列中获取详细信息值以创建新行

  16. 16

    显示表中特定行的详细信息

  17. 17

    如何在Cytoscape中创建“详细信息面板”?

  18. 18

    如何在Microsoft Access中创建“详细信息”按钮?

  19. 19

    如何在Linux中查找目录创建的详细信息

  20. 20

    如何在Laravel中让具有特定角色的用户及其个人资料详细信息

  21. 21

    如何在 SQL 中检查具有相同操作的多行的条件?(查看详细信息)

  22. 22

    如何在单行中获取具有不同详细信息的 SQL 副本。?

  23. 23

    在Bootstrap中创建可折叠的行

  24. 24

    Crystal Reports如何引用“详细信息”部分中的行?

  25. 25

    如何在android中显示带有图像和详细信息的网站网址

  26. 26

    如何在数据表行详细信息中使用从服务器JSON接收的信息?

  27. 27

    如何在T-SQL中折叠具有重复ID的表行

  28. 28

    通过在其他列中添加详细信息来标识R中具有完整数据的行

  29. 29

    如何在HTML中创建具有可变和固定列宽以及分组标题的表?

热门标签

归档