Kendo 网格 (ASP.NET MVC) - 设置 DataTable-bound 网格的列标题

Kendo Grid (ASP.NET MVC) - Set column titles of a DataTable-bound grid

我有一个 kendo 网格,它是使用 ASP.NET MVC 助手构建的。网格绑定到 DataTable。如果我将我的网格绑定到这个 DataTable,kendo 助手使用每个 DataColumnColumnName 属性 来设置列的标题和字段 属性的靠山object.

问题是列名必须包含空格,但如果我将列名设置为这样的值,kendo 会抛出模板错误,因为字段名不能包含空格不是有效的 javascript 标识符。我尝试设置 DataColumnCaption 属性,但这似乎不起作用。问题的更大部分是创建一个 JS 映射器函数来动态重命名每一列(或任何使用 hard-coded 值的变通方法)不是一个选项,因为我的 DataTable 是SQL 数据透视操作的结果,因此列名根本不可预测,因此无法事先进行映射。

如何告诉 Kendo 为各自支持字段中的每一列使用不同的标题?

如果您在视图中迭代网格声明中的列,您将能够设置自定义标题。检查此示例并使用 column.Title("...");

https://github.com/telerik/ui-for-aspnet-mvc-examples/blob/master/grid/binding-to-datatable/KendoUIMVC5/Views/Home/Index.cshtml

.Columns(columns =>
{
    foreach (System.Data.DataColumn column in Model.Columns)
    {
        var c = columns.Bound(column.ColumnName);
        if (column.ColumnName == "UnitPrice")
        {
            c.ClientFooterTemplate("sum:#:sum#").ClientGroupFooterTemplate("sum:#:sum#");
        }
        else if (column.ColumnName == "UnitsInStock")
        {
            c.ClientFooterTemplate("max:#:max#").ClientGroupFooterTemplate("avg:#:average#");
        }
    }
    columns.Command(cmd=>cmd.Edit());
})