从特定的kendo网格列获取所有值

时间:2017-06-18 11:34:25

标签: javascript html angularjs json kendo-grid

我需要从剑道网格的一列获取所有数据,我搜索了很多但没有找到有用的东西。我基于来自API API/LogService/ReadAllLog的JSON创建了一个kendo网格。无论如何,我正在使用AngularJS。

我的代码:

$scope.gridColumns = [{
  field: "SystemName",
  editable: false,
  title: _t("Title.SystemName"),
  allownull: false,
  width: 100
}, {
  field: "FormName",
  editable: false,
  title: _t("CommonTitle.SystemFeatureForm"),
  allownull: false,
  width: 100
}]

然后我这样填写:

$scope.gridConfig = {
  autoBind: true,
  inlineOperationalUrl: {
    read: {
      url: webAccess + "api/LogService/ReadAllLog",
    }
  }
};

这是我视图中的网格(注意: pn-gridview是从角度网格视图创建的自定义指令,但有一些更改):

<pn-gridview id="SystemsGrid"
      config="gridConfig"
      columns="gridColumns"
</pn-gridview>

1 个答案:

答案 0 :(得分:1)

使用简单的辅助函数收集一列上的所有值:

function getColumnValues(selector, columnName) {

  //Init
  var columnData = [];
  var data = $(selector).data("kendoGrid").dataSource._data;

  //collect each valueof given columnName
  for (i = 0; i < data.length; i++) {
    if (typeof data[i][columnName] !== "undefined") {
        columnData.push(data[i][columnName]);
    }
  }

  //return column data as array
  return columnData;
}

&GT; DEMO FIDDLE

在您的情况下,您需要调用此辅助函数,如:

var myColumnData = getColumnValues('#SystemsGrid', 'SystemName');

您可以使用以下内容访问特定的数据

var myRowData = $("#SystemsGrid").data().kendoGrid.dataSource.at(index);