如何使用行索引更改kendo网格行的背景颜色

时间:2015-06-05 05:46:25

标签: javascript kendo-ui kendo-grid

我需要使用它的索引号来改变kendo网格行的颜色。 我尝试使用这个,但什么都没发生。

       var gview = $('#SearchResult').data().kendoGrid;//searchresult is grid's id
        var dataRows = gview.items();
        var rowIndex = dataRows.index(gview.select());
         gview.tbody.find("tr:eq("+rowIndex+")").css("background-color", "green");

它没有在调试器中抛出任何错误,但没有给出任何结果。

2 个答案:

答案 0 :(得分:1)

你需要通过索引找到一行的Uid并通过其data-uid找到tr,检查下面的函数

function ChangeGridRowByIndex(index) {
    var grid = $("#SearchResult").data("kendoGrid");
    var gridData = grid.dataSource.view();
    var currentUid = gridData[index].uid;
    var currenRow = grid.table.find("tr[data-uid='" + currentUid + "']");
    $(currenRow).addClass("red");
}

希望这会对你有所帮助:)。

答案 1 :(得分:0)

鉴于kendo没有提供直接控制单行背景颜色的选项(我知道)。但是在渲染表之后必须应用新颜色,并且在每次刷新表之后也可能需要应用它(kendo应该为此抛出事件)。一旦kendo finshes绘制它,抓住页面中的table元素,默认情况下kendo给它一个class =" k-grid-content"。使用jquery它看起来像这样

void    forloopTrace(int ForloopCount)
{
    if( ForloopCount==50)
    printf("Invalid \n");
}

#define CONCAT_IMPL( x, y ) x##y
#define MACRO_CONCAT( x, y ) CONCAT_IMPL( x, y )

#define FORlOOPCOUNTM MACRO_CONCAT(ForloopCountM,__LINE__)

#define for(args...)\
    int FORlOOPCOUNTM=0;\
for(args,FORlOOPCOUNTM++,forloopTrace(FORlOOPCOUNTM))\

int main()
{
    int i,j,x,y;
    j=100;
    y=200;
    for(i=0;i<j;i)   //works fine
    {
        i++;
        for(x=0;x<y;x) //works fine
            x++;
    }
    if(i>0)
       for(;i>0;)    //ERROR
         i--;
    for(;;)   //Error
    {
        i++;
    }

    return 0;
}

在控制台

中运行此http://demos.telerik.com/kendo-ui/grid/index进行测试
var differentRowElement = $('.k-grid-content').find('tr').eq(index).css('background-color', 'red');