复选框列,获取选定值并传递给控制器
Checkbox column, get selected values and pass to controller
我有一个专栏模板:
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;" });
我 select 行包含此代码:
function onDataBound(e) {
$(".checkbox").bind("change", function(e) {
$(e.target).closest("tr").toggleClass("k-state-selected");
})
}
如何 select 网格中的特定列(例如 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 的列表,您可以在点击事件期间跟踪它们,或者在触发事件时将它们全部收集起来,例如。
$("#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
我有一个专栏模板:
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;" });
我 select 行包含此代码:
function onDataBound(e) {
$(".checkbox").bind("change", function(e) {
$(e.target).closest("tr").toggleClass("k-state-selected");
})
}
如何 select 网格中的特定列(例如 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 的列表,您可以在点击事件期间跟踪它们,或者在触发事件时将它们全部收集起来,例如。
$("#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