【问题标题】:How can I get the selected checkbox in kendo grid?如何在剑道网格中获得选中的复选框?
【发布时间】:2019-11-14 13:47:30
【问题描述】:

我有 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");
});

【问题讨论】:

标签: asp.net-mvc checkbox kendo-grid


【解决方案1】:

我找到了两个解决方案,第一个是激活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');
                        }
                    }
                });
            }
        })

我的英语不太好,希望你能得到答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多