Asp.net-Mvc

ASP NET MVC 劍道網格和列名

  • November 10, 2015

我有帶有欄位的 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;}
}

而且我希望我的劍道網格顯示列標題不像Field1 …但是像表2中的數據(程式碼,供應商,型號,年份,價格)我如何從表中載入這些數據並設置為劍道網格列標題?

我不確定您的要求是否可以完成。但是 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.

你實際上不能做你正在嘗試的事情。你可以像下面這樣綁定你的模型並使用 Title() 作為#C Sharper 說的:

@(Html.Kendo().Grid<Models.Products>()
 .Name("YourReportName")
 .Resizable(resizing => resizing.Columns(true))
 .Columns(columns =>
   {
   columns.Bound(p => p.ID).Width(50).Title("ID");
   columns.Bound(p => p.Field1).Width(50).Title("f1");
   columns.Bound(p => p.Field2).Width(50).Title("f2");
   columns.Bound(p => p.Field3).Width(50).Title("f3");
   columns.Bound(p => p.Field4).Width(50).Title("f4");
   columns.Bound(p => p.Field5).Width(50).Title("f5");
   })
 .Scrollable()
 .DataSource(dataSource => dataSource.Ajax()
   .Read(read => read.Action("GetModelData", "Home")))
 .Pageable(pager => pager.Refresh(true))
 .Sortable()
)

如果您將網格與 js 綁定並接受 JSon,並且如果您希望列名應該是數據庫驅動的,那麼這應該是可以實現的。在後面的程式碼中,您只需使用**JsonConvert.SerializeObject(Products); 將對象轉換為 json;**並從數據庫中獲取所需的列名,將“Field1”、“Field2”等替換為“f1”、“f2”等。希望這會有所幫助。如果您需要進一步的幫助,請發表評論。謝謝。

引用自:https://stackoverflow.com/questions/21407450