Как экспортировать, чтобы превзойти все уровни иерархической jqgrid в asp.net MVC? - PullRequest
0 голосов
/ 19 мая 2018

У меня есть jqgrid с 5 уровня.Я хочу экспортировать все уровни сетки, чтобы превзойти их одним нажатием кнопки. Как я могу это сделать?

Я использую jqGrid5.3.0, Visual Studio 2017

Вот мой код (для 2 уровня):

function FillJQueryGrid(ProjectIdVal) {
    var myColTemplate = { searchoptions: { sopt: ['cn', 'eq', 'bw', 'bn', 'nc', 'ew', 'en'] } };

    $("#jqGrid").jqGrid({
        url: '@Url.Action("GetTransmittalSumLists", "Report")' + '?ProjectId=' + ProjectIdVal,

        jsonReader: {
            repeatitems: false,
            root: function (obj) {
                return obj.records;
            }
        },
        datatype: "json",
        height: 'auto',
        page: 1,
        colModel: [
            { label: 'transmital id', name: 'ArchiveChecklistMainId_fk', template: myColTemplate, key: true, hidden: true},
            { label: 'transmital no', name: 'trans_ref_no', width: 200 },
            { label: 'transmital subject', name: 'ChkMain_Subject', width: 400 },
            { label: 'transmital date', name: 'trans_date', width: 200 },
            { label: 'Delay', name: 'sum_delay_count', width: 200, color: "#ff0000" }

        ],
        width:"100%",
        loadonce: true,
        autowidth: true,
        rowNum: 20,
        subGrid: true,
        subGridRowExpanded: showChildGridCoding,
        toolbarfilter: true,
        pager: "#jqGridPager",
        ignoreCase: true

    });
    $("#jqGrid").jqGrid('filterToolbar', { searchOperators: true, stringResult: true, searchOnEnter: false, defaultSearch: "cn" });

        };

//***********************************fill grid level 2 *******************************************
    function showChildGridCoding(parentRowID, parentRowKey) {
        var childGridID = "GR"+parentRowID + "_table";
        var childGridPagerID = "GR" + parentRowID + "_pager";

        var childGridURL = '@Url.Action("GetCodingSumLists", "Report")' + '?ArchiveChecklistMainId_fk=' + parentRowKey;

        $('#' + parentRowID).append('<table id=' + childGridID + '></table><div id=' + childGridPagerID + ' class=scroll></div>');

        var subgridDivId = childGridID;
        var $subgrid = $("<table id='" + subgridDivId + "_t'></table>"),
    subgridData = $(this).jqGrid("getLocalRow", parentRowID).details,
    $subgridDataDiv = $("#" + subgridDivId),
    $subgridCell = $subgridDataDiv.closest(".subgrid-data").prev(".subgrid-cell");

        $subgridCell.addClass("green"); // set background color on td.subgrid-cell
        $subgridDataDiv.append($subgrid);

        $subgrid.jqGrid({

            url: childGridURL,
            jsonReader: {
                repeatitems: false,
                root: function (obj) {
                    return obj.records;
                }
            },
            datatype: "json",
            height: 'auto',
            width: "100%",

            page: 1,
            colModel: [
                { label: 'Coding_Id', name:'Coding_Id',key:true,hidden:true},
                { label: 'code', name: 'comp_code' },
                { label: 'revision', name: 'revision',width:500 },
                { label: 'Delay', name: 'sum_delay_count',width:500 }
            ],
            loadonce: true,
            subGrid: true,
            subGridRowExpanded: showChildGridReceiver,
            pager: "#" + childGridPagerID,
            rowNum: rowCount,
            loadComplete: function (data) {

                if (data.records.length <= rowCount) {
                    $("#" + childGridPagerID).hide();
                } else {
                    $("#" + childGridPagerID).show();
                }
                $("[id*='" + subgridDivId + "'].ui-jqgrid-sortable").each(function () {
                    this.style.backgroundColor = "#A3E4D7";
                });

            }
        });

    }

если я использую navButtonAdd для exportToExcel, он экспортирует только текущую сетку, чтобы превзойти данные не всех уровней.(Я добавляю это для сетки на первом уровне)

1 Ответ

0 голосов
/ 20 мая 2018

В текущей реализации Guriddo jqGrid экспорт подсетей не поддерживается.

Вы можете создать группировку, если применимо, и выполнить экспорт.Группировка поддерживается при экспорте в Excel, Pdf, Csv и Html

...