Kendo ui 如何有条件地格式化包含在tabstrip中的剑道UI网格行?

Kendo ui 如何有条件地格式化包含在tabstrip中的剑道UI网格行?,kendo-ui,telerik,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Telerik,Kendo Grid,Kendo Asp.net Mvc,我是剑道UI的新手 我正在尝试使用Razor语法对剑道UI网格中的行进行有条件的着色。网格包含在剑道UI选项卡条中。以下是我编写的代码: @(Html.Kendo().TabStrip() .Name("tabstrip") .Items(items => { items.Add().Text("Books") .Selected(true) .Content(

我是剑道UI的新手

我正在尝试使用Razor语法对剑道UI网格中的行进行有条件的着色。网格包含在剑道UI选项卡条中。以下是我编写的代码:

@(Html.Kendo().TabStrip()
    .Name("tabstrip")
    .Items(items =>
        {
            items.Add().Text("Books")
                .Selected(true)
                .Content(
                @<text>@(Html.Kendo().Grid((IEnumerable<Library.Models.Books>)ViewBag.Books)
                          .Name("grid2")
                          .Columns(columns =>
                          {
                              columns.Bound(books => books.BookID);
                              columns.Bound(books => books.BookName);
                          })
                           .ClientRowTemplate(
                              "<tr class= 'red' data-uid='#= uid #'>" +
                              "<td>#: BookID #</td>" +
                              "<td>#: BookName #</td>" +
                              "</tr>")
                          .Pageable()
                          .Sortable()
                )
                </text>
                );

        }))
@(Html.Kendo().TabStrip())
.名称(“tabstrip”)
.项目(项目=>
{
items.Add()文本(“书籍”)
.已选择(真)
.内容(
@@(Html.Kendo().Grid((IEnumerable)ViewBag.Books)
.名称(“grid2”)
.列(列=>
{
columns.Bound(books=>books.BookID);
columns.Bound(books=>books.BookName);
})
.ClientRowTemplate(
"" +
“#:BookID#”+
“#:书名#”+
"")
.Pageable()
.Sortable()
)
);
}))

虽然,目前我没有检查特定的值,我想根据某些条件对其进行着色,但即使是将行着色为红色的简单任务也不起作用。有什么想法吗?

我正在回答我自己的问题,以便将来在同一主题上进行搜索

问题是网格当前的绑定是服务器绑定,ClientRowTemplate()仅在使用Ajax绑定时才适用,因此根本没有应用。将数据源更改为Ajax,效果非常好

我最终通过Telerik打开了一张支持票,下面是我得到的回复:

。。。关于行模板,ClientRowTemplate()方法仅在使用Ajax绑定时适用,因此在当前情况下,它未应用于网格

下面是我现在使用条件格式行的代码:

@(Html.Kendo().TabStrip()
    .Name("tabstrip")
    .Items(items =>
        {
            items.Add().Text("Books")
                .Selected(true)
                .Content(@<text>@(Html.Kendo().Grid((IEnumerable<Library.Models.Books>)ViewBag.Books)
                          .Name("grid2")
                          .Columns(columns =>
                          {
                              columns.Bound(books => books.BookID);
                              columns.Bound(books => books.BookName);
                          })
                          .ClientRowTemplate(                                   
                               "<tr data-uid='#= uid #'>"+
                                    "<td class='#= BookID == 1 ? \"red\" : BookID == 2 ? \"orange\" : BookID == 3 ? \"yellow\" : \"green\" #' style=\"text-align:center;\">#: BookID #</td>" +
                                     "<td>#: BookName #</td>" +
                               "</tr>"
                               )
                         .Pageable()
                         .Sortable()
                         .DataSource(datasource => datasource
                                  .Ajax()
                                  .PageSize(20)
                                  .ServerOperation(false)
                          )
            )
            </text>
            );
    }))
我所追求的是根据BookID的值有条件地格式化各种行/单元格。最后将条件格式(应用各种类)应用于“td”标记。如果需要对整行而不是单元格进行有条件的格式化,则可以对“tr”标记应用相同的格式。i、 e

.ClientRowTemplate("<tr class='#= BookID == 1 ? \"red\" : BookID == 2 ? \"orange\" : BookID == 3 ? \"yellow\" : \"green\" #' data-uid='#= uid #'>"+
    "<td>#: BookID #</td>" +
    "<td>#: BookName #</td>" +
    "</tr>"
)
.ClientRowTemplate(“)+
“#:BookID#”+
“#:书名#”+
""
)

您可以查看此帖子:@calinaadi谢谢您的回复。是的,我已经浏览了这个链接和其他一些Telerik资源。但我不确定我的代码出了什么问题。
.ClientRowTemplate("<tr class='#= BookID == 1 ? \"red\" : BookID == 2 ? \"orange\" : BookID == 3 ? \"yellow\" : \"green\" #' data-uid='#= uid #'>"+
    "<td>#: BookID #</td>" +
    "<td>#: BookName #</td>" +
    "</tr>"
)