【问题标题】:Checkbox column, get selected values and pass to controller复选框列,获取选定的值并传递给控制器
【发布时间】:2015-03-23 10:21:54
【问题描述】:

我有一个列模板:

columns.Template(@<text></text>).ClientTemplate("<input type='checkbox'   class='checkbox'/>").Title("<input type='checkbox'/>").Width(10).Title("Izbor").HtmlAttributes(new { @onclick = "click", style = "align:center;float:none;text-align:center; font-size:12px; vertical-align: middle;" }).HeaderHtmlAttributes(new { style = "overflow: visible; white-space: normal; text-align:center; font-size:12px; font-weight: bold;" });

我使用此代码选择行:

function onDataBound(e) {
    $(".checkbox").bind("change", function(e) {
        $(e.target).closest("tr").toggleClass("k-state-selected");
    })
}

如何从网格中选择某个列(例如 ID)并将它们传递给控制器​​?

【问题讨论】:

    标签: checkbox kendo-ui controller kendo-grid


    【解决方案1】:

    您可以在事件处理程序中访问网格上的支持数据

        dataBound: function(e) {
          $(".checkbox").bind("change", function(e) {
            var grid = $("#grid").data("kendoGrid");
            var row = $(e.target).closest("tr");
            row.toggleClass("k-state-selected");
            var data = grid.dataItem(row);
            alert(data.ProductID);
          });
        }
    

    要获取选定 id 的列表,您可以在点击事件期间跟踪它们,或者在触发事件时将它们全部收集,例如。

        $("#actionButton").click(function(){
          var idsToSend = [];
          var grid = $("#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(".checkbox");
            if (checkbox.is(":checked")) {
              idsToSend.push(ds[i].ProductID);
            }
          }
    
          alert(idsToSend);
    
          //this obviously won't work , but just to illustrate the point.          
          $.post("/whatever", {ids: idsToSend});
        });
    

    编辑:demo

    【讨论】:

    • 谢谢!有用!如何将所有复选框选中的行放入数组中并将所有选中的 ID 传递给控制器​​?
    • 用可能的方法更新了演示和示例。
    • 谢谢!这正是我要找的! :)
    • 我一直在寻找这样的答案,感谢 lazerbrain 的提问,非常感谢 Joe 的回答并提供了演示
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多