1

所以我搜索了很多答案,似乎找不到任何具体的内容......所以这里是......

我有一个标准的 Kendo UI Grid - 我设置了一个列,如下所示:

{   title: "Sharing Enabled?", 
    field: "permissions_users_apps_user_sharing", 
    attributes: {
        style: "text-align: center; font-size: 14px;"
    },
    filterable: true,
    headerAttributes: {
        style: "font-weight: bold; font-size: 14px; width: 40px;"
    },
    template: function(dataItem) {
        if ( dataItem.permissions_users_apps_user_sharing == 0 ) {
            return "<input type='checkbox' name='permissions_users_apps_status' id='permissions_users_apps_status' value='1' />"
        } else if ( dataItem.permissions_users_apps_user_sharing == 1 ) {
            return "<input type='checkbox' name='permissions_users_apps_status' id='permissions_users_apps_status' value='1' checked />"
        }
    }
},

当我单击我定义的命令按钮时,我想要做的是获取此复选框的值(以查看它是否已更改)。ROW 是可选择的.. 所以我可以得到行的 ID。但我似乎无法收集复选框的值。

有人有建议吗?

提前致谢..

4

2 回答 2

2

当复选框状态发生变化时,您可以在 dataBound 事件中获取复选框的实例。看看下面的代码是否对你有帮助。

 ....
 columns: [
 {
  { field: "select", template: '<input id="${BindedColumn}" onclick="GrabValue(this)" type="checkbox"/>', width: "35px", title: "Select" },
 }
 ....
 selectable: "multiple, row",
 dataBound: function () {
            var grid = this;
            //handle checkbox change
            grid.table.find("tr").find("td:nth-child(1) input")
            .change(function (e) {
                var checkbox = $(this);
                //Write code to get checkbox properties for all checkboxes in grid
                var selected = grid.table.find("tr").find("td:nth-child(1) input:checked").closest("tr");

                //Write code to get selected checkbox properties
                ......
                //Code below to clear grid selection
                grid.clearSelection();
                //Code below to select a grid row based on checkbox selection 
                if (selected.length) {
                    grid.select(selected);
                }
            })
        }
        .....
        function GrabValue(e)
        {
         //Alert the checkbox value
         alert(e.value);
         //get the grid instance
         var grid = $(e).closest(".k-grid").data("kendoGrid");
         //get the selected row data
         var dataItem = grid.dataSource.view()[grid.select().closest("tr").index()];
         }
于 2013-07-16T15:24:24.957 回答
0

使用此方法,您可以获得选中的复选框值。

          $("#MultiPayment").click(function () {
                var idsToSend = [];
                var grid = $("#Invoice-grid").data("kendoGrid")
                var ds = grid.dataSource.view();
                for (var i = 0; i < ds.length; i++) {
                    var row = grid.table.find("tr[data-uid='" + ds[i].uid + "']");
                    var checkbox = $(row).find(".checkboxGroups");
                    if (checkbox.is(":checked")) {
                        idsToSend.push(ds[i].Id);
                    }
                }
                alert(idsToSend);
                $.post("/whatever", { ids: idsToSend });
            });

更多细节转到

于 2015-10-27T09:56:19.070 回答