2013-04-24 144 views
2

我有一个类剑道UI网格显示的翻译:

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. 
    ) 
) 
已引用

当显示网格时,它只显示[对象对象]作为“查找列”列中单元格中的值。我已经得到了编辑器模板的工作(遗漏代码,因为没有必要,基本上从here复制)和保存/加载作品(为简单起见,遗漏),但我似乎无法弄清楚如何显示从查找的名称属性类。

+0

列绑定在属性上工作,而不是在类级别上,这是你得到那个'[object Object]'的原因。 – 2013-04-24 06:48:12

+1

在Kendo UI网站上,他们有一个使用类级别来执行带有下拉菜单的editorTemplate的示例,所以我假设必须有一种方法可以使此类显示成为类。 – Bakanekobrain 2013-04-24 07:02:29

+0

我认为应该有一个编辑器模板,如果你将绑定到一个类,类似于如何在视图中执行它。你应该检查一下。 – 2013-04-24 07:09:17

回答

3

找到一个KendoUI的例子,说明如何做到这一点(http://demos.kendoui.com/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的错误(不记得确切的消息)。在列出的示例中,模型部分还有一点显示了如何设置默认对象。