javascript - 剑道ui网格背景变化事件

标签 javascript asp.net-mvc kendo-ui kendo-grid

我正在使用一个 Kendo UI Grid,它由于数据绑定(bind)事件中的条件而改变了每行的 bg 颜色,如下所示:

function onDataBound(e) {

    var grid = $("#Software").data("kendoGrid");
    var gridData = grid.dataSource.view();

    for (var i = 0; i < gridData.length; i++) {
        var currentUid = gridData[i].uid;
        if (gridData[i].CategoryID == 1) {
            var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
            $(currenRow).addClass("green");
        }
        else if (gridData[i].CategoryID == 2 ){
            var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
            $(currenRow).addClass("red");
        }
        else {
            var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
            $(currenRow).addClass("yellow");
        }
    }
}

我有一个自定义列,其中提供了 3 个按钮进行分类。我现在要做的是在单击其中一个按钮时更改行的背景颜色。

当重新加载网格时,背景颜色会发生变化,但这需要很长时间,因为网格中填充了很多数据。

我只想添加例如受影响行的 CSS 类“绿色”。
function SetGreen(sid, cid) {

    var grid = $("#grid").data("kendoGrid");

    cid =1;
    var url = '@Url.Action("SetMethod","SetController")';

    $.post(url, { SID: sid, CID: cid });

    grid.saveChanges();

    //right here I want to set the bg color for the affected row
}

提前致谢

最佳答案

您可以使用 rowTemplate用于设置为每个数据项呈现的表格行 (tr) 元素的 CSS 类。像这样的东西:

var categoryClassNames = {
  1: "red",
  2: "green"
};

$("#grid").kendoGrid({
  dataSource: [
    { Category: 1 },
    { Category: 2 },
    { Category: 1 }
  ],
  rowTemplate: "<tr data-uid='#=uid#' class='#= categoryClassNames[Category]#'>" + 
                 "<td>#= Category #</td>" + 
               "</tr>"
});

要更新特定的表格行,您可以使用以下代码:
var grid = $("#grid").data("kendoGrid");
var itemToUpdate = grid.dataSource.at(1); // we will update the second item

itemToUpdate.Category = 1;

$("#grid tr[data-uid='" + itemToUpdate.uid + "']").removeClass("green").addClass("red");

这是一个现场演示:http://jsbin.com/iNExotO/2/edit

关于javascript - 剑道ui网格背景变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109910/

相关文章:

kendo-ui - 我没有在剑道下拉列表中找到占位符。任何人都可以建议我解决方案吗

javascript - 使用 Proxy 对象时如何将参数捕获到目标方法?

javascript - Laravel @include 通过 ajax 的 Blade View

javascript - 有没有办法让 "prevent"用户阻止浏览器上的确认框(firefox)

c# - Asp Web Api 异步操作 - 404 错误

jquery - Asp.Net MVC 应用程序的 Kendo UI 与 Jquery/Bootstrap 设计决策

javascript - Facebook sharer.php - 默认 View

c# - 如何从 ASP.NET MVC 项目引用 Web 服务?

asp.net-mvc - ASP 包中的绝对 URL

javascript - Kendo Dataviz 中的强制日期轴具有所有值