KendoUI Grid - 如何将类添加到生成的表中

时间:2013-05-29 11:40:27

标签: kendo-ui kendo-grid

我正在使用ajax dataSource生成一个KendoUI Grid。该表已生成,默认情况下没有类。为了让它与网站的其他部分保持一致,我想在其中添加一个“交互式”类。

$("#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()方法执行此操作,在网格生成后运行,但是有没有办法在网格设置/配置中设置它?

提前致谢。

4 个答案:

答案 0 :(得分:9)

我猜你除了使用addClass()之外别无选择。在JS中使用内置属性设置网格(不是网格列)htmlAttributes的文档中找不到任何内容。我也尝试过但没有成功。除非你这样声明(C#):

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

但如果你真的需要它,那么你必须这样做:

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

答案 1 :(得分:7)

您还可以使用TableHtmlAttributes()

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

答案 2 :(得分:4)

我这样做的方法是将我的配置添加到attributes部分的列中。根据您要设置类的列,执行以下操作:

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

通过这种方式,&#39;名称&#39; column(在我的例子中)在网格初始化时设置了它们的类。无需额外的jquery来添加类。我在一开始就试过了。这样做jquery方式(使用addClass)一直工作,直到我尝试对列进行排序,然后绑定中断(可能是因为我们在实现中所做的魔术)。按照我上面的方式完成后,我的绑定甚至在排序后也能正常工作。

答案 3 :(得分:2)

你可以通过在原始元素中定义一个类来实现,你使用过,比如:

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