2013-02-05 59 views

回答

1

你可以找到第n個細胞(相當於過濾列的索引),並設置自己的CSS樣式:

$("#grid tr").find("td:eq(1)").css('background', 'grey'); 

這將設置每一個第二單元爲灰色的背景。這裏有一個現場演示:

http://jsbin.com/ixozad/1/edit

+0

我不知道你理解我的問題。起初網格將會是相同的顏色,但是在對指定的列進行過濾或排序之後,我想要改變同一列的顏色 – NFeskova

+0

我非常瞭解您的問題。我已經顯示的代碼可以用來設置任何列的顏色(過濾或排序)。你需要自己找到列索引。 –

+0

這是我的觀點,我不知道如何找到索引,因爲網格有10列,它們都是可排序和可過濾的,並且用戶將能夠選擇他想要排序/過濾哪一列比我想要的那個(被選中的)改變背景顏色:/ – NFeskova

1

我知道我來晚了就這個比賽,但我在我建立和應用這一要求,並想我會分享的解決方案。突出顯示細胞是很容易的部分 - 進入劍道找出哪個細胞突出是訣竅。我用@Atanas Korchev的響應,並修改它以防止它突出了劍道頁腳:

var filterObj = $("#grid").data("kendoGrid").dataSource.filter; 
if (filterObj.arguments && filterObj.arguments[0]) { 
    filterObj.arguments[0].filters.forEach(function(val) { 
     var index = $(".k-header[data-field='" + val.field + "']").index(); 
     $("#grid tr[role='row']").find("td:eq(" + index + ")").css("background-color", "red"); 
    }); 
} 

重要的提醒 - 我完全反向工程這對我自己沒有諮詢劍道文檔(這充其量是一個迷宮),所以這是你不能保證繼續在未來的版本中工作。至少我們暫時固定在我們的Kendo版本上,所以它適用於我們(現在)。另外,我沒有花費足夠的時間去真正理解爲什麼在「參數」列表中只有一個對象 - 如果您的用例或配置是在某些時候,您可能需要循環瀏覽那些過濾器有點不同(再次,在我的本地情況下,它似乎沒有超過1個參數,這讓我有點緊張)。這只是一個.for每個雖然無論如何...