2

我有一堂课

public class LookupClass {
    public int Id { get; set; }
    public string Name { get; set; }
}

我在另一堂课中引用过的

public class Sampleclass {
    public int Id { get; set; }
    public LookupClass LookupEntry { get; set; }
}

显示在 KendoUI 网格中

@(Html.Kendo().Grid<SampleClass>()
    .Name("SomeGrid")
    .Columns(cols => {
         cols.Bound(o => o.LookupEntry).Title("Lookup Column")  // Displays [object Object]
         cols.Bound(o => o.LookupEntry.Name) // displays name correctly
    }
    .DataSource(datasource => 
         // leaving this out since the data is seems to be loading correctly.
    )
)

显示网格时,它只显示“查找列”列中单元格中的值的 [object Object]。我已经让编辑器模板正常工作(因为没有必要,所以省略了代码,基本上是从这里复制的)和保存/加载工作(为简单起见省略了),但我似乎无法弄清楚如何从 Lookup 显示 Name 属性班级。

4

1 回答 1

3

找到了一个 KendoUI 示例,展示了如何执行此操作(http ://demos.kendoui.c​​om/web/grid/editing-custom.html )

基本上你必须使用 ClientTemplate 来显示你想要显示的属性

@(Html.Kendo().Grid<SampleClass>()
    .Name("SomeGrid")
    .Columns(cols => {
         cols.Bound(o => o.LookupEntry).ClientTemplate("#=LookupEntry.Name#").Title("Lookup Column") 
    }
)

附带说明,如果您尝试创建新记录,则会产生关于找不到 LookupEntry 的错误(不记得确切的消息)。在列出的示例中,模型部分中还有一些内容显示了如何设置默认对象。

于 2013-04-25T00:10:01.340 回答