Kendo Grid-在复选框上获取当前行

发布于 2025-01-24 08:59:09 字数 931 浏览 5 评论 0原文

我有一个kendo网格,每个行有多个复选框。 当用户检查/取消选中的一个时,我必须获取其他(相邻的)复选框值,并确定组合是否有效。 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

}

当复选框更改时,我似乎无法获得行。 感谢您的帮助!

I have a kendo grid with multiple checkbox per row.
when a user checks/uncheck one of them, I have to get other(adjacent) checkbox values and determine if the combination is valid.
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

}

I cannot seem to get the row when the checkbox is changed.
Thanks for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请远离我 2025-01-31 08:59:09

设法通过将更改事件附加到网格而不是每列上的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)
    });

Managed to get it working by attaching change event to the grid instead of onClick on each column

    $('#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)
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文