我正在使用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()
方法执行此操作,在网格生成后运行,但是有没有办法在网格设置/配置中设置它?
提前致谢。
答案 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>