【问题标题】:Kendo Grid (ASP.NET MVC) - Set column titles of a DataTable-bound gridKendo Grid (ASP.NET MVC) - 设置 DataTable 绑定网格的列标题
【发布时间】:2016-10-19 09:11:05
【问题描述】:

我有一个使用 ASP.NET MVC 助手构建的剑道网​​格。网格绑定到DataTable。如果我将我的网格绑定到这个DataTable,剑道助手使用每个DataColumnColumnName 属性来设置列的标题和支持对象的字段属性。

问题是列名必须包含空格,但如果我将列名设置为这样的值,kendo 会引发模板错误,因为字段名不能包含空格,因为这不是有效的 javascript 标识符.我尝试设置DataColumns 的Caption 属性,但这似乎不起作用。问题的更大部分是创建一个 JS 映射器函数来动态重命名每一列(或任何使用硬编码值的解决方法)不是一个选项,因为我的 DataTable 是 SQL 的结果枢轴操作,因此列名根本无法预测,因此无法事先进行映射。

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

【问题讨论】:

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


    【解决方案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());
    })
    

    【讨论】:

    • 哦,我不知道为什么我没想到,谢谢!
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2012-10-21
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多