2014-01-17 316 views
2

我正在使用Kendo UI Grid Edit和Delete命令來管理數據。Kendo UI Grid取消事件

我遇到的問題是我有一個自定義樣式需要應用到刪除按鈕。我可以在DataBound事件上添加類,但是當用戶嘗試編輯數據時,樣式會在按鈕上消失,並返回到默認的Kendo UI樣式。


jQuery的使用增添風采

function onRowBound(e) { 
    $(".k-grid-delete").removeClass("k-button k-button-icontext").addClass("btn btn-danger"); 
} 

劍道MVC活動

columns.Command(command => command.Edit()).Title("Edit"); 
columns.Command(command => command.Destroy()).Title("Remove") 
.........  
.Events(e => 
     { 
      e.DataBound("onRowBound"); 
      e.Cancel("onRowBound"); 
      e.Edit("onRowBound"); 
     })) 

我已經試過有在取消事件的相同方法火災,但風格依舊回覆到默認的一個。有什麼方法可以設置樣式,最好不使用「ClientTemplate」功能?

回答

4

由於kendoUI沒有提供任何機制來防止改變他們的風格,它唯一的方法就是使用SetTimeout函數在kendo之後改變按鈕樣式。更改onRowBoundFunction這樣的:

function onRowBound(){ 
    setTimeout(function(){ 
      $(".k-grid-delete").removeClass("k-button k-button-icontext").addClass("btn btn-danger"); 
    },1); 
} 

工作的jsfiddle:http://jsfiddle.net/a6Ek2/10/

+1

這對我有用。儘管我覺得這不是最好的辦法,但它似乎是唯一真正有效的方法。謝謝 – sevargdcg

+0

爲我工作,但似乎有點破解?它是如何爲你測試的? – GP24

-1

我不知道MVC,但我可以像這樣設計按鈕。下面的代碼來自網格的列定義。您可以使用className和/或屬性屬性。

{ 
    command: [{ text: "Edit", click: showDetails, className: "rebtn" }, 
    { text: "Request New Engagement", click: showEngagement }], 
     attributes: {style:"padding:10px"}, 
     title: " ", 
     width: "200px" 

} 
0

在我看來,正確的方法來做到這一點不去除劍道類,但改變他們的樣式爲你想要的。然後,如果你想爲另一個網格,你不需要再次手動改變類。所以,在你的CSS,你可以用逗號和寫類似:

.btn, .k-grid .k-button { 
    your properties 
} 

.btn-danger, .k-grid .k-button { 
    your properties 
} 

我知道,你必須改變劍道按鈕幾.K-按鈕屬性exacly看,但你想,但我不知道更好的方法。

+0

這是不是一個真正的好選擇,因爲我使用是按鈕Twitter的引導式的風格。 – sevargdcg