剑道只编辑一列网格

Lod*_*odu 2 jquery kendo-ui kendo-grid

我有一个 kendoGrid(),在 Javascript UI 中,配置参数为“editable: true”。是否可以只设置我网格的特定列可编辑?

我尝试两种方式,首先:

<div id="grid"></div>
<script>
    $("#grid").kendoGrid({
        columns: [
          { field: "name" },
          { field: "age" }
        ],
        filterable: {
            mode: "row"
        },
        editable: true,
        dataSource: [{ id: 1, name: "Jane", age: 30 }, { id: 2, name: "John", age: 33 }],
        schema: {
            model: {
                id: "id",
                fields: {
                    name: { editable: true },
                    age: { editable: false }
                }
            }
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

第二种方式:

<div id="grid"></div>
<script>
    $("#grid").kendoGrid({
        columns: [
          { field: "name", editable: false },
          { field: "age" editable: true }
        ],
        filterable: {
            mode: "row"
        },
        editable: true,
        dataSource: [{ id: 1, name: "Jane", age: 30 }, { id: 2, name: "John", age: 33 }],
    });
</script>
Run Code Online (Sandbox Code Playgroud)

但不起作用。


我可以使用 MVC 视图助手:

@(Html.Kendo().Grid((List<TestGrid>)Model.innerElements)
            .Name("gridTest")
            .Columns(column =>
            {
                column.Bound(dataGrid => dataGrid.id).Width("50%");
                column.Bound(dataGrid => dataGrid.name).Width("50%");
            })
                .Filterable(filterable => filterable
                .Mode(GridFilterMode.Row)
                )
            .Sortable()
            .Pageable()
            .Editable(editable => editable.Mode(GridEditMode.InCell))
            .DataSource(data => data
                .Ajax()
                    .Model(model =>
                    {
                        model.Id(m => m.id);
                        model.Field(field => field.id).Editable(false);
                        model.Field(field => field.name).Editable(true);
                    })
                .Update(update => update.Action("gridTest_Update","Home"))
                .PageSize(10)
                )
    )
Run Code Online (Sandbox Code Playgroud)

但我无法在 JQuery 中重现。

Ona*_*Bai 6

schema.model 是 DataSource 定义的一部分,您正在外部定义它。

你的方法 1 说:

    dataSource: [
        { id: 1, name: "Jane", age: 30 }, 
        { id: 2, name: "John", age: 33 }
    ],
    schema: {
        model: {
            id: "id",
            fields: {
                name: { editable: true },
                age: { editable: false }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它应该是:

    dataSource: {
        data: [
            { id: 1, name: "Jane", age: 30 }, 
            { id: 2, name: "John", age: 33 }
        ],
        schema: {
            model: {
                id: "id",
                fields: {
                    name: { editable: true },
                    age: { editable: false }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这里查看:http : //dojo.telerik.com/@OnaBai/iMEdE

关于实现 2,我在 Grid 的文档中看不到你在哪里拥有editable属性的列。