2015-05-06 12 views
2

許多純HTML樣品指使用劍道UI網格的命令的 的imageCLASS屬性:劍道UI電網command.imageClass中缺少ASP MVC幫手

$("#grid").kendoGrid({ 
dataSource: myDataSource, 
columns: [ 
    { 
     command: { 
      name: "Edit", 
      text:"", 
      imageClass: "k-icon k-i-pencil ob-icon-only", 
      click: function(e) { 
       //some code 
      } 
     } 
    }, 
    ... 
], 

});

我使用的劍道UI ASP MVC版本,它似乎沒有這個屬性來設置。我錯過了什麼?

如果這是真的錯過(我不希望),還是我怎麼能在JavaScript甚至設置該屬性? (我想繼續我的HTML輔助渲染,而不是做一切在JavaScript中,該解決方案是顯而易見的......)

enter image description here

+0

找到Kendo的幫助非常令人沮喪的是,您必須小心避免使用「Kendo UI」解決方案,因爲「Kendo MVC」與您所發現的不同。 –

回答

1

在MVC助手,您不會使用的imageCLASS;你會使用HtmlAttributes屬性。你可以這樣定義它:

columns.Command(o => o.Edit().Text("") 
.HtmlAttributes(new { @class = "k-icon k-i-pencil ob-icon-only" })); 

祝你好運。

編輯:爲什麼不修改CSS以適應?

.ob-icon-only span{ } 

關於加入劍道類內部span元素,你能做到這一點的數據綁定並修改相應的元素。

+0

在我詢問ImageClass之前,我已經試過了這個解決方案。不幸的是,類屬性必須添加到_inner_ span類。將這些類添加到按鈕(外部元素)會導致按鈕呈現不正確。 –

+0

關於kryptonkal編輯:這種情況下,我必須從kendo和/或bootstrap複製和粘貼相同的CSS,最初定義爲k-圖標。我認爲這不是一個專業的解決方案,將粘貼CSS複製到新的選擇器,而不是嘗試應用原始類。 –

1

指定自定義樣式,最方便的方法是使用自動生成的k-grid-NAME_OF_COMMAND類。如果這在目前的實現中不適用,我建議你綁定到dataBound事件並在那裏附上類。取消編輯後,使用OnCancel事件再次替換圖標。

例子

.Events(e => e.DataBound("onDataBound").Cancel("onCancel")) 

的JavaScript

function onDataBound(e) { 
    $(".k-grid-NAME_OF_COMMAND").addClass("k-icon k-i-pencil ob-icon-only"); 
} 

或者

function onDataBound(e) { 
    $(".k-grid-edit").find("span").removeClass("k-icon k-edit"); 
    $(".k-grid-edit").find("span").addClass("k-icon k-i-pencil ob-icon-only"); 
} 

取消編輯時添加取消事件,確保圖標停留。

function onCancel(e) { 
    e.preventDefault(); 
    e.sender.refresh(); 
} 

結果

Edit Icon

其他測試

使用$(".k-grid-edit").find("span").addClass("k-icon k-i-cancel ob-icon-only");

Cancel Icon

+0

Vash:非常感謝您的詳細解答。我已經使用您的_second_解決方案來定製按鈕。 (第一個不正確,因爲圖像是由內部跨度實現的),但由於以下原因而不滿意:如果在網格中啓用內聯編輯,則按[編輯],然後按[取消]隱藏自定義按鈕,然後重新創建並這會從內部跨度中刪除類。我試圖利用Cancel事件修補類屬性,但不幸的是,當Cancel事件運行時,自定義按鈕仍然隱藏起來,所以顯然jQuery將找不到任何東西... –

+0

添加到我的上一條評論:有趣的是,按下編輯按鈕,那麼更新按鈕不會從自定義按鈕的內部跨度中刪除類。只有按下編輯按鈕然後按取消按鈕序列才能刪除跨度的類。這兩種情況下,自定義按鈕被隱藏,所以我不知道可能是什麼區別...(編輯:是的,我知道:在編輯數據綁定事件後也運行,所以重新申請類) –

+0

編輯我的迴應,但它似乎像它可能與此處的方法相同。您可能必須覆蓋所有事件或修改kendo js源代碼。 – kryptonkal