Развернуть и свернуть детали. Сетка JSON не содержит подмножеств ввода JSON. - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь создать таблицу, используя угловую сетку пользовательского интерфейса кендо, в которой показана сводная таблица из одного файла json, и при щелчке строки в сводной таблице должно развернуться отображение подробных значений из другого файла json. Они оба имеют общее поле идентификатора. Я реализовал нечто похожее на (https://docs.telerik.com/kendo-ui/knowledge-base/grid-master-row-click-expand-collapse-detail), но проблема в любой строке. Я выбираю подробную таблицу, в которой показаны все строки, а не только те, которые соответствуют выбранному идентификатору.

Я создал сценарии, похожие на приведенный выше URL, но любая доступная справка в основном для jQuery / Ajax, но эта страница является частью более крупного приложения, и я ограничен только использованием angularJS и kendoUI.

    (<any>$("#alerts-table-cpu")).kendoGrid({
        dataSource: {
          transport: {
            read: {
             url: './assets/count_summary.json',
             type: "get",
             dataType: "json"
            }
          },
          pageSize: 30
        },
        selectable: "multiple",
        allowCopy: true,
        height: 700,
        columnMenu: true,
        scrollable: {
          virtual: true
        },
        pageable: {
          pageSizes: [30, 50, 100, 500, 1000, "all"]
        },
        autowidth: true,
        resizable: true,
        reorderable: true,
        filterable: {
          mode: "row",
          operators: {
            string: {
              contains: "Contains",
              eq: "Equal to",
              neq: "Not equal to",
              startswith: "Starts with",
              doesnotcontain: "Doesn't contain"
            }
          }
        },
        groupable: true,
        sortable: true,
        detailInit: detailInit,
        dataBound: function(e) {
          var grid = e.sender;

          grid.tbody.find("tr.k-master-row").click(function(e) {
              var target = $(e.target);
              if ((target.hasClass("k-i-expand")) || (target.hasClass("k-i-collapse"))) {
                  return;
              }

              var row = target.closest("tr.k-master-row");
              var icon = row.find(".k-i-expand");

              if (icon.length) {
                  grid.expandRow(row);
              } else {
                  grid.collapseRow(row);
              }
          })
        },
        columns: [
         { field: "rcrd_date", title: "Date", width: 60 },
         { field: "occurences", title: "spikes", width: 60 }
        ],
      });
      function detailInit(e) {
        (<any>$("<div/>").appendTo(e.detailCell)).kendoGrid({
          dataSource: {
            transport: {
              read: {
                url: './assets/detailed.json',
                type: "get",
                dataType: "json"
              }
            },
            serverPaging: true,
            serverSorting: true,
            serverFiltering: true,
            pageSize: 10,
            filter: [
                {field: "id", operator: "eq", value: e.id}
              ]
          },
          scrollable: false,
          sortable: true,
          pageable: true,
          columns: [
            { field: "timestamp", title: "Timestamp", width: 150 },
            { field: "value", title: "spike", width: 80 }
        ]
        });
      }

Когда я нажимаю на дату в сводной таблице, она должна развернуться на эту дату на все метки времени, но вместо этого она показывает все метки времени для всех дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...