复选框列,获取选定的值并传递给控制器

前端之家收集整理的这篇文章主要介绍了复选框列,获取选定的值并传递给控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个列模板:
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)并将它们传递给控制器​​?

解决方法

您可以在事件处理程序中访问网格上的支持数据
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的列表,您可以在click事件期间跟踪它们,或者只在事件被触发时收集它们,例如.

$("#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

原文链接:https://www.f2er.com/html/223759.html

猜你在找的HTML相关文章