Получение selectedKeyNames из gridOptions - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь получить выбранные строки сетки и назначить их переменной. В демонстрации Кендо выбранные строки выводятся на консоль:

  <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8"/>
        <title>Kendo UI Snippet</title>

        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.common.min.css"/>
        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.rtl.min.css"/>
        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.silver.min.css"/>
        <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.3.1017/styles/kendo.mobile.all.min.css"/>

        <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
        <script src="https://kendo.cdn.telerik.com/2018.3.1017/js/kendo.all.min.js"></script>
    </head>
    <body>

    <div id="grid"></div>
    <script>
    $("#grid").kendoGrid({
      columns: [
        { field: "name" },
        { field: "age" }
      ],
      dataSource: {
        data: [
          { id: 1, name: "Jane Doe", age: 30 },
          { id: 2, name: "John Doe", age: 33},
          { id: 3, name: "Jim Doe", age: 30 },
          { id: 4, name: "Jack Doe", age: 33}
        ],
        schema: {
          model: { id: "id" }
        }
      },
      change: function(e) {
        console.log(this.selectedKeyNames());
      },
      selectable: "multiple, row",
      persistSelection: true
    });
    </script>
    </body>
    </html>

Это именно то, что мне нужно, за исключением того факта, что я хочу назначить выбранные строки из события изменения переменной.

change: function (e) {
                        row = this.selectedKeyNames();
             `enter code here`       },

Я определил 'row' как var row; внутри контроллера (первая строка вверху страницы:

var app = angular.module('collection-app', ['kendo.directives'])
.controller('CollectionController', ['$scope', '$http', "$window",     function ($scope, $http, $window) {
    var self = this;
    var dataUrl = UrlParams.type != null ? UrlParams.Collection + "?type=" + UrlParams.type : UrlParams.Collection;
    var viewUrl = UrlParams.view != null ? UrlParams.Collection + "/Views/" + UrlParams.view : UrlParams.Collection + "/Views/Default";
    var row;

Но когда я пытаюсь опубликовать данные, я получаю сообщение "undefined".

var dataArray = { "header": "itemsSelect", "rowData": row };
                            $window.parent.postMessage(dataArray, "*");

Это потому, что я не могу присвоить значения в gridOptions?

...