我需要使用它的索引号来改变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");
它没有在调试器中抛出任何错误,但没有给出任何结果。
答案 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');