ASP NET MVC kendo网格和列名

Std*_*Net 7 asp.net-mvc kendo-ui kendo-grid

我有字段的SQL表:Id,Field1,Field2,Field3,Field4,Field5和我有其他表格列f1,f2,f3,f4,f5这个表只有一行有这个数据:代码,供应商,型号,年,价格

我的项目中有这个模型

public class Products
{
  [ScafoldColumn(false)]  
  public Guid Id{get;set;}
  public string Field1{get;set;}
  public string Field2{get;set;}
  public string Field3{get;set;}
  public string Field4{get;set;}
  public string Field5{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我希望比我的剑道网格显示列标题不像Field1 ...但是像表2中的数据(代码,供应商,型号,年份,价格)如何从表中加载此数据并设置为kendo网格列标题?

CSh*_*per 12

我不确定你的要求是否可以做到.但是Kendo Grid有一个title属性,所以你可以将Header设置为你想要的任何东西.

@(Html.Kendo().Grid<OMSWeb.Models.OrderGridViewModel>()
 .Name("grid")
.HtmlAttributes(new { style = "width:115%;font-size:10px;line-height:2em" })
.Columns(columns =>
{        
    columns.Bound(m => m.AdvertiserName).Title("Advertiser Name");
});

etc.
Run Code Online (Sandbox Code Playgroud)


Std*_*Net 2

感谢您的回答。但我找到了我创建类的其他解决方案

public class MyMetadataProvider : AssociatedMetadataProvider
{
    public MyMetadataProvider () : base()
    {
    }

    protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType,
                                                    string propertyName)
    {
        var metaData = new ModelMetadata(this, containerType, modelAccessor, modelType, propertyName);

        if (propertyName == null)
            return metaData;
        if (propertyName.StartsWith("Field"))
        {
            var c = DbHelper.GetProductColumns();//get data from database
            if (c.Count == 1)
            {
                if (c != null && propertyName == "Field1")
                    metaData.DisplayName = c[0].F1;
                if (c != null && propertyName == "Field2")
                    metaData.DisplayName = c[0].F2;
                if (c != null && propertyName == "Field3")
                    metaData.DisplayName = c[0].F3;
                if (c != null && propertyName == "Field4")
                    metaData.DisplayName = c[0].F4;
                if (c != null && propertyName == "Field5")
                    metaData.DisplayName = c[0].F5;
            }
        }
        else
        {
            if (attributes != null)
            {
                foreach (var a in attributes)
                {
                    var type = a.TypeId as Type;
                    if (type != null && type.Name == "DisplayNameAttribute")
                    {
                        var dn = (a as DisplayNameAttribute).DisplayName;
                        if (!string.IsNullOrEmpty(dn))
                            metaData.DisplayName = dn;

                    }
                }
            }
        }
        return metaData;
    }


}
Run Code Online (Sandbox Code Playgroud)

使用此元数据提供程序,我可以更改网站中的任何网格,而无需任何额外的 JS 代码。我希望这对其他人有帮助。再次感谢。