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

时间:2016-10-19 09:11:05

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

我有一个使用ASP.NET MVC帮助程序构建的kendo网格。网格绑定到DataTable。如果我将网格绑定到此DataTable,则kendo帮助程序使用每个ColumnName的{​​{1}}属性来设置列的标题和后备对象的字段属性。

问题是列名称必须包含空格,但是如果我将列名设置为这样的值,则kendo会抛出模板错误,因为字段名称不能包含空格,因为它不是有效的javascript标识符。我尝试设置DataColumn的{​​{1}}属性,但这似乎不起作用。问题的大部分是创建一个JS映射器函数,它可以动态地重命名每个列(或任何使用硬编码值的解决方法)不是一个选项,因为我的Caption是结果SQL枢轴操作,因此列名完全不可预测,因此事先不能进行映射。

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

1 个答案:

答案 0 :(得分:1)

如果在视图中迭代Grid声明中的列,您将能够设置自定义标题。请查看此示例并使用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());
})