2013-10-01 38 views
3

我使用的是這種情況正在改變每一行的BG顏色的劍道UI電網由於這樣的數據綁定事件的條件:劍道UI網格背景變化事件

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 
} 

在此先感謝

回答

0

您可以使用rowTemplate網格的設置CSS類呈現的每一個數據項的錶行(TR)的元素。事情是這樣的:

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

+0

感謝您的回答,但該行的顏色已經在網格加載時在數據綁定事件中設置。 我需要知道的是,如果點擊3個按鈕之一,我可以更改背景顏色。 – pavemann

+0

您需要更新相應的字段並刷新網格。 –

+0

嘿atanas - 這就是關鍵。我不想刷新網格,因爲它包含大約10k個條目 - 這將花費太長時間。我想要做的唯一事情就是,直接將css類添加到相應的表格行中,將行標記爲分類。 – pavemann