2013-05-29 89 views
6

我使用ajax dataSource生成一個KendoUI網格。表格生成並且默認沒有類。爲了讓它與網站的其他部分保持一致,我想爲它添加一個「交互式」類。KendoUI網格 - 如何添加一個類到生成的表格

$("#pending_documents").kendoGrid({ 
    dataSource: { 
     transport: { 
      read: "/get-data?type=1" 
     }, 
     schema: { 
      data: "data", 
      total: "total" 
     }, 
     pageSize: 2, 
     serverPaging: true, 
     serverFiltering: true, 
     serverSorting: true, 
     reorderable: true 
    }, 
    height: 500, 
    filterable: { 
     extra: false 
/* 
, ui: "datetimepicker" // use Kendo UI DateTimePicker 
*/ 
    }, 
    sortable: true, 
    pageable: { 
     pageSize: 2  }, 
    columns: [...] 
}); 
    }); 

我知道我可以使用JQuery.addClass()方法,生成網格後運行做到這一點,但是如果在網格中設置/配置設置它的方法嗎?

在此先感謝。

回答

5

我想你沒有別的選擇,只能用addClass()。找不到關於在JS中使用內置屬性設置網格(不是網格列)htmlAttributes的文檔中的任何內容。我試過也沒有成功。除非你聲明像這樣(C#):

@(Html.Kendo().TabStrip() 
    .Name("TabStrip") 
    .HtmlAttributes(new { @class = "newclass"}) 
) 

但是,如果你真的需要它在JS,那麼你就必須做到這一點是這樣的:

$("#pending_documents").kendoGrid({ 
dataSource: { 
    //code 
    } 
}).addClass("newclass"); 
+1

呀,可惜類需要直接應用到表,所以我唯一的選擇就是把它表後再添加,如我在規定的方式產生題。感謝您花時間參與調查! –

2

您可以通過定義做在原始的元素類,你使用,如:

<div id="pending_documents" class="your-class-name"> </div> 
4

我這樣做是把它添加到我的列在我的配置,在attributes節的方式。根據其列要設置類上做到以下幾點:

columns: [{ field: 'Name', title: 'Company Name', width: '250px',attributes: { 
        "class": "class1 class2" 
       }}, 
      . 
      . 
      . 
      . 
      . 
      . 
      .] 

這樣,所有在「名稱」列中的項目(對我來說)有自己的班級建立對電網的初始化。無需額外的jquery添加類。我在一開始就試過了。這樣做的jQuery的方式(使用addClass)工作,直到我試圖排序我的列,然後綁定破壞(可能是因爲我們在執行中的魔術)。按照上面的方法完成之後,我的綁定即使在排序後也能正常工作。

+0

嗨DJ Burb會以這種方式讓你通過knockout.js嵌入你的數據而不是Ajax?謝謝 – Mich

+0

不知道,還沒有嘗試過 –

+0

這對我有好處......唯一的警告是不能使用模板... 即以下將不起作用 .... template:'#= Name #', attributes,{'class':'ui-icon-arrowthick-2-n-s'}, .... – JayJay

7

您還可以使用TableHtmlAttributes()

@(Html.Kendo().Grid<Object>() 
     .Name("dataGrid").TableHtmlAttributes(new { @class = "interactive" }) 
相關問題