同时使用Template和ClientTemplate作为Kendo Grid列

时间:2017-08-22 12:57:25

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我在ASP.NET MVC中使用了一个kendo网格,我想将某些颜色规则应用于某些列的单元格。 为此,我尝试过HtmlAttributes(使用类似乎是最简单的方法)和ClientTemplate,但两者都没有用。 此外,我根据ViewModel中的变量创建了许多列。

我正要声明一个布尔选项卡,这意味着每个列必须是可见的(这样看起来似乎是静态的)。我不能动态地使用columns.Bound(),但是我能够在for循环中动态地添加columns.Template()的列。

Html.Kendo().Grid<ViewModelPilotageRetroPlanningOpeDetail>() //Bind the grid to ViewBag.Products
        .Name("pilotageRetroPlanningListeOpesDivabc")
        .BindTo(Model.ListeOpes)
        .Columns(columns =>
        {
             columns.Bound(ope => ope.NbTachesRetard).Title("Nb tâches en retard").Template(@<text> @if (item.NbTachesRetard != 0)
             {
                 <span class="retards"> @item.NbTachesRetard </span>
             }
             else
             {
                 <span class="pasDeRetards"> @item.NbTachesRetard </span>
             }
             </text>);


            for (int i = 0; i < Model.NombreJalonsUtilises; i++)
            {
            var index = i;
            columns.Template(@<text> @item.ListeStatutJalon.ElementAt(index).ToString() </text>).Title("J" + (i + 1).ToString()).Width(25);
             }
        }

它可以工作并显示所需的列enter image description here

现在我需要显示图像而不是数字,我需要使用ClientTemplate将单元格与img标签相关联

我的问题是: 是否可以同时使用Template和ClientTemplate根据@ item.ListeStatutJalon.ElementAt(index)给出的值添加类? 因为当我添加ClientTemplate时,模板的值不会出现在单元格中。

1 个答案:

答案 0 :(得分:0)

.Template()server binding一起使用。 ClientTemplate()client/ajax binding一起使用。 也可以使用混合绑定方法。在这种情况下,Grid最初将受服务器限制,并将从服务器呈现其初始数据。对于后续数据操作(例如,分页),小部件将使用已经加载的数据。以下是如何为后者配置网格:

http://demos.telerik.com/aspnet-mvc/grid/local-data-binding