Как я могу получить выбранный флажок в сетке кендо? - PullRequest
1 голос
/ 03 июля 2019

У меня есть сетка Kendogrid, в которой я получаю данные по JSON для имеющегося URL-адреса и активирую режим выбора, когда я нашел документацию по сетке кендо, но я пытаюсь получить выбранные данные из сетки кендо, попробуйте некоторые методы в javascriptно пока я не смог это сделать.Если кто-то может мне помочь?

$(document).ready(function () {
    $("#grid").kendoGrid({
        toolbar: ["excel"],
        excel: {
            fileName: "user.xlsx",
            filterable: true
        },
        dataSource: {
            transport: {
                read: {
                    url: `/user`
                }
            },
            schema: {
                data: function (response) {
                    return response.permisos;
                },
                model: {
                    fields: {
                        id: { type: "number" },
                        nombre: { type: "string" },
                        descripcion: { type: "string" }
                    }
                }
            },
            pageSize: 20
        },
        height: 550,
        scrollable: false,
        sortable: true,
        filterable: true,
        pageable: true,
        persistSelection: true,
        change: onChange,
        columns: [
            { selectable: true, width: "50px" },
            { field: "id", title: "Id" },
            { field: "nombre", title: "Nombre" },
            { field: "descripcion", title: "Descripción" }
        ]
    });
    $("#grid").data("kendoGrid").wrapper.find(".k-grid-header-wrap").off("scroll.kendoGrid");
});

1 Ответ

0 голосов
/ 05 июля 2019

Я нашел два решения, первое - это активация change: onchange, каждый может получить выбранные флажки, каждый раз, когда выбирает.То, что я делаю, проходит через флажки и сохраняет их в списке

    function onchange(e) {
        var permiso = [];

        var numero = 0;
        var rows = e.sender.select();
        rows.each(function (e) {
            var grid = $("#grid").data("kendogrid");
            var dataitem = grid.dataitem(this);
            var recibir = dataitem;
            console.log(dataitem);
            console.log("dato recibido" + recibir.id);
            permiso.push(recibir.id);

        })
        console.log("largo: " + permiso.length);

        for (var i = 0; i < permiso.length; i++) {
            console.log("array: " + permiso[i]);
        }

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

$("#saveChanges").kendoButton({
            click: function (e) {
                var permiso = [];
                var entityGrid = $("#grid").data("kendoGrid");
                var rows = entityGrid.select();

                rows.each(function (index, row) {
                    var selectedItem = entityGrid.dataItem(row);
                    var recibir = selectedItem;
                    console.log(selectedItem);
                    console.log("Dato recibido rows.each" + recibir.id);
                    permiso.push(recibir.id);
                });

                for (var i = 0; i < permiso.length; i++) {
                    console.log("List obtenido por el boton: " + permiso[i]);
                }

                var RolPermisos = { rolId: $("#IdRol").val() , permisos: permiso };

                $.ajax({
                   type: 'POST',
                    contentType: 'application/json; charset=utf-8',
                    url: '../../Roles/api/Ui/',
                    dataType: 'json',
                    data: $.toJSON(lineItems),
                    success: function (result) {
                        if (result) {
                            alert('Success');
                        }
                        else {
                            alert('Failure');
                        }
                    }
                });
            }
        })

Мой английский не очень хорош, надеюсь, вы получите ответ.

...