【问题标题】:Kendo UI Grid displays [object Object]Kendo UI Grid 显示 [object Object]
【发布时间】:2013-04-25 08:10:01
【问题描述】:

我有课

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 Grid 中显示

@(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]。我已经让编辑器模板正常工作(因为没有必要,所以省略了代码,基本上是从 here 复制的)和保存/加载工作(为简单起见省略了),但我似乎无法弄清楚如何显示 Name 属性查找类。

【问题讨论】:

  • 列绑定适用于属性而不是类级别,这就是你得到[object Object]的原因。
  • 在 Kendo UI 网站上,他们有一个示例,该示例使用类级别来执行带有下拉菜单的 editorTemplate,因此我假设必须有一种方法来使该类也显示该类。跨度>
  • 我认为如果您要绑定到一个类,应该有一个编辑器模板,类似于您在视图中的操作方式。你应该检查一下。

标签: asp.net-mvc-4 kendo-grid


【解决方案1】:

找到了一个展示如何执行此操作的 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 的错误(不记得确切的消息)。在列出的示例中,模型部分也有一点显示如何设置默认对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多