2
그래서 사용자마다 사용자 지정할 수있는 메타 데이터 항목 목록이 포함 된 모델이 있습니다. I 컬럼 이름, 헤더와 레이블 각 MyModel 대한 출력 값으로서 이름을 가진 WebGrid에 열을 추가 할 필요 MyModel 각 메타 데이터 항목 MVC WebGrid 동적 열
public class MyModel {
public int ID { get; set; }
public String Name { get; set; }
public DateTime Created { get; set; }
// Need to diplay each as a column
public List<MetaData> Data { get; set; }
}
public class MetaData {
public int ID { get; set; }
public String Name { get; set; }
public String Label { get; set; }
public String Value { get; set; }
}
.
@{
WebGrid grid = new WebGrid(source: Model, rowsPerPage: 5, canPage: true);
List<WebGridColumn> cols = new List<WebGridColumn>();
cols.Add(grid.Column("Name", "Name"));
cols.Add(grid.Column("Created"));
for (int i = 0; i < Model.FirstOrDefault().Data.Count; i++)
{
cols.Add(grid.Column(Model.FirstOrDefault().Data[i].Name, Model.FirstOrDefault().Data[i].Label,
format: item => @<text>@item.Data[i].Value</text>
));
}
}
@grid.GetHtml(
tableStyle: "table",
htmlAttributes: new { id = "MyGrid" },
columns: cols)
메타 데이터 열은 모든 MyModel간에 공유되므로 각 열마다 새 열 집합이 없습니다. 이름과 레이블은 다른 MyModel에서 동일합니다. 누구든지 도움을 줄 수 있다면 많은 도움이 될 것입니다.