Kendo grid - 获取复选框点击事件的当前行
Kendo grid - Get current row on checkbox click event
我有一个 kendo 网格,每行有多个复选框。
当用户 checks/uncheck 其中之一时,我必须获取其他(相邻的)复选框值并确定组合是否有效。
Grid
columns.Bound(c => c.AnswerB).Title("B").Width(80).ClientTemplate("<input id='AnswerB' name='chkB' class='checkbox' type='checkbox' value='#=AnswerB#' # if (AnswerB) { # checked='checked' # } # onclick='onAnswerClick(this)'/>");
columns.Bound(c => c.AnswerC).Title("C").Width(80).ClientTemplate("<input id='AnswerB' name='chkC' class='checkbox' type='checkbox' value='#=AnswerC#' # if (AnswerC) { # checked='checked' # } # onclick='onAnswerClick(this)'/>");
function onAnswerClick(me)
{
var grid = $("#AnswersGrid").data("kendoGrid");
var row = $(this).closest("tr");
var dataItem = grid.dataItem(row);
console.log(row)
console.log(dataItem) <---- Is Null
}
更改复选框后我似乎无法获取该行。
感谢您的帮助!
设法通过将更改事件附加到网格而不是每列上的 onClick 来使其工作
$('#AnswersGrid').on("change", "input", function (e) {
var grid = $("#AnswersGrid").data("kendoGrid");
grid.select($(this).closest('tr'));
var checked = $(this).is(':checked');
var row = $(e.target).closest("tr");
var item = grid.dataItem(row);
var col = $(this).closest('td');
console.log(row);
console.log(item.AnswerB)
});
我有一个 kendo 网格,每行有多个复选框。 当用户 checks/uncheck 其中之一时,我必须获取其他(相邻的)复选框值并确定组合是否有效。 Grid
columns.Bound(c => c.AnswerB).Title("B").Width(80).ClientTemplate("<input id='AnswerB' name='chkB' class='checkbox' type='checkbox' value='#=AnswerB#' # if (AnswerB) { # checked='checked' # } # onclick='onAnswerClick(this)'/>");
columns.Bound(c => c.AnswerC).Title("C").Width(80).ClientTemplate("<input id='AnswerB' name='chkC' class='checkbox' type='checkbox' value='#=AnswerC#' # if (AnswerC) { # checked='checked' # } # onclick='onAnswerClick(this)'/>");
function onAnswerClick(me)
{
var grid = $("#AnswersGrid").data("kendoGrid");
var row = $(this).closest("tr");
var dataItem = grid.dataItem(row);
console.log(row)
console.log(dataItem) <---- Is Null
}
更改复选框后我似乎无法获取该行。 感谢您的帮助!
设法通过将更改事件附加到网格而不是每列上的 onClick 来使其工作
$('#AnswersGrid').on("change", "input", function (e) {
var grid = $("#AnswersGrid").data("kendoGrid");
grid.select($(this).closest('tr'));
var checked = $(this).is(':checked');
var row = $(e.target).closest("tr");
var item = grid.dataItem(row);
var col = $(this).closest('td');
console.log(row);
console.log(item.AnswerB)
});