9

我正在使用 ajax 数据源生成一个 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()方法来做到这一点,在生成网格后运行,但是如果有办法在网格设置/配置中设置它?

提前致谢。

4

4 回答 4

12

我想你别无选择,只能使用addClass(). 在他们的文档中找不到关于htmlAttributes使用 JS 中的内置属性设置网格(不是网格列)的任何内容。我也试过了,没有成功。除非你像这样声明它(C#):

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

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

$("#pending_documents").kendoGrid({
dataSource: {
   //code
  }
}).addClass("newclass");
于 2013-05-31T03:08:49.537 回答
8

您还可以使用TableHtmlAttributes()

@(Html.Kendo().Grid<Object>()
        .Name("dataGrid").TableHtmlAttributes(new { @class = "interactive" })
于 2014-08-08T11:16:52.417 回答
4

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

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

这样,“名称”列中的所有项目(在我的例子中)都在网格初始化时设置了它们的类。不需要做额外的 jquery 来添加类。我一开始就尝试过。使用 jquery 方式(使用 addClass)进行操作,直到我尝试对列进行排序,然后绑定中断(可能是因为我们在实现中使用的魔法)。按照我上面的方式完成后,我的绑定即使在排序后也能正常工作。

于 2014-07-07T20:41:07.620 回答
2

您可以通过在您使用的原始元素中定义一个类来做到这一点,例如:

<div id="pending_documents" class="your-class-name"> </div>
于 2014-05-02T10:37:02.760 回答