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 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.
    )
)

グリッドを表示すると、[ルックアップ列] 列のセルの値に対して [オブジェクト オブジェクト] が表示されます。エディター テンプレートが機能し (必要ないため、基本的にここからコピーされたコードを省略)、保存/読み込みが機能します (簡単にするために省略されています) が、ルックアップから 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 に答える