1

子/サブ グリッドを持つグリッドがあります。正常に動作し、追加および削除できます。ただし、command.destroy を実行しようとすると、確認時に [キャンセル] を押すと、再び起動します (そのため、もう一度 [キャンセル] を押す必要があります)。[確認] を選択すると、再度ポップアップすることはなく、最初の試行で削除されます。

何が原因なのかわからず、私の CSHTML ではないと思いますが、セカンドオピニオンが必要です。

@(Html.Kendo().Grid<ModelA>()
.Name("Grid")

.Columns(columns => 
{
    columns.Bound(o => o.ID).Width(50);
    columns.Bound(o => o.Name).Width(300);
    columns.Bound(o => o.UpdateUser).Width(100);
    columns.Bound(o => o.UpdateDate).Format("{0:d}").Width(100);
    columns.Command(command => { command.Edit(); command.Destroy(); });

})
.ToolBar(toolbar => toolbar.Create())
.ClientDetailTemplateId("adTemplate")
.Pageable()
.Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("RoleTemplate"))
.DataSource(dataSource => dataSource
    .Ajax()
    .Read(read => read.Action("RoleRead", "Role"))
    .Update(update => update.Action("RoleUpdate", "Role"))
    .Create(create => create.Action("RoleCreate", "Role"))
    .Destroy(destroy => destroy.Action("RoleRemove", "Role"))
    .PageSize(10)
    .Model(model => 
    {
        model.Id(c => c.ID);
        model.Field(c => c.UpdateUser).Editable(false).DefaultValue(Context.User.Identity.Name);
        model.Field(c => c.UpdateDate).Editable(false).DefaultValue(DateTime.Now);
    })   
    )
.Sortable()
.Filterable()
)  

<script id="adTemplate" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<ModelAChild>()
            .Name("Roles_#=ID#")
            .Columns(columns =>
            {
                columns.Bound(s => s.ActiveDirectoryGroup).Width(500);
                columns.Command(command => { command.Destroy(); });
            })
            .ToolBar(toolbar => toolbar.Create())
            .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("RoleSecurityTemplate"))
            .DataSource(dataSource => dataSource
                .Ajax()
                .Read(read => read.Action("RoleReadSecurity", "Role", new { roleID = "#=ID#" }))
                .Create(create => create.Action("RoleAddSecurity", "Role", new { roleID = "#=ID#" }))
                .Destroy(destroy => destroy.Action("RoleRemoveSecurity", "Role", new { roleID = "#=ID#" }))
                .Model(model => 
                    {
                        model.Id(s => s.ID);
                        model.Field(s => s.UpdateUser).Editable(false).DefaultValue(Context.User.Identity.Name);
                        model.Field(s => s.UpdateDate).Editable(false).DefaultValue(DateTime.Now);
                    })    
                    )
            .Pageable()
            .Sortable()
            .ToClientTemplate())
</script>
4

1 に答える 1

1

バージョンを最新のものに更新します。これは、いくつかのリリース前に修正されました。

于 2012-12-05T21:28:03.477 に答える