1

本当に2つ質問があります。1つはそれが可能で、2つはそれを行う方法ですか?RoleModel Type には PermissionModel の IEnumberable があり、その列をリスト ビューとして表示したいと考えています。これに似たもの。リストビューを Permissions オブジェクトにバインドする方法がわかりません。

@(Html.Kendo().Grid<RoleModel>()
    .Name("RoleGrid")
    .Columns(x =>
                 {
                     x.Bound(p => p.Name).Width(150);
                     x.Bound(p => p.Description).Width(350);
                     x.Bound(p => p.Permissions).ClientTemplate("test");
             }))


<script type="text/x-kendo-template" id="test" >
    @(Html.Kendo().ListView<PermissionModel>().Name("listView").AutoBind(true).ToClientTemplate()                                                                                                                                                                                                                                                               )
</script>
4

1 に答える 1

2

リストビューを配置してリストビューを初期化する各セルを見つけるには、グリッドのdataBoundイベントを使用する必要があります。最初に項目を含むコレクションを渡すには、グリッドの dataItem メソッドで取得する必要があります。

わかりやすくするために、例を次に示します。

@(Html.Kendo().Grid<Person>().Name("grid")
        .DataSource(dataSource => dataSource
            .Ajax()
            .Model(model=>model.Id(m=>m.PersonID))
                .Read(read => read.Action("GetPersons","Home"))                    
        )

        .Columns(columns =>
        {
            columns.Bound(c => c.PersonID);
            columns.Bound(c => c.Name).ClientTemplate("test");
            columns.Bound(c => c.Children).ClientTemplate("<div class='myView'></div>");                
        })
        .Events(ev=>ev.DataBound("db"))
    )

<script type="text/javascript">
    function db() {
        $.each($('.myView'), function () {
            var grid = $('#grid').data().kendoGrid;
            var row = $(this).closest('tr');
            var dataItem = grid.dataItem(row);
            $(this).kendoListView({
                dataSource: { data: dataItem.Children },
                template: kendo.template($("#templateLV").html())
            });
        });
    }
</script>

<script type="text/foo" id="templateLV"> 
#=TestID# testid is a property of the Child model
</script>

幸運を

于 2012-12-05T20:41:18.377 に答える