0

我想通过单击工具栏中的自定义按钮来启用批量编辑。假设我在工具栏中有一个名为“编辑”的按钮。单击编辑按钮后,我想激活所有行进行编辑。我不想在加载时使所有行最初都可编辑。

这可能吗?如果是,有人可以指导如何实现这一目标吗?

4

2 回答 2

0

与@Jaimin 解决方案一致,我提出了一种类似的方法,其中您有两个网格,但每次从版本通勤到非版本模式时都不会创建新的网格(不确定这是否是必需的)。

所以我要做的是创建两个网格,它们的定义完全相同,不同之处在于一个是隐藏的,一个是可见的,一个是可编辑的,一个是不可编辑的。当您单击按钮时,它会隐藏可见并显示不可见。由于两者共享相同的数据源,它实际上非常完美,因为在一个页面中更改页面会更改另一个页面,编辑一个页面,更新另一个页面。

所以,它是这样的:

1- 用于切换可见性的 CSS 定义:

.ob-hide {
    display : none;
}

2- 数据源定义:

var ds = new kendo.data.DataSource({
    transport : {
        read : {
            url: ...
        },
        update : {
            url: ...
        },
        create : {
            url: ...
        },
        destroy : {
            url: ...
        }
    },
    pageSize: 10,
    schema  : {
        model: {
            id : ...,
            fields: {
                id       : { type: '...' },
                ...
            }
        }
    }
});

接下来是两个网格:

$("#grid-editable").kendoGrid({
    editable: "inline",
    dataSource : ds,
    ...
}

$("#grid-not-editable").kendoGrid({
    editable: false,
    dataSource: ds,
    ...
});

$("#grid-editable").addClass("ob-hide");

最后是通勤网格的按钮处理程序:

$("#make-editable").on("click", function() {
    $("#grid-editable").toggleClass("ob-hide");
    $("#grid-not-editable").toggleClass("ob-hide");
});

看到它在这里运行:http: //jsfiddle.net/OnaBai/bCEJR/

于 2013-07-12T23:00:29.370 回答
0

嗨试试这样

  $(document).ready(function () {
            var crudServiceBaseUrl = "http://demos.kendoui.com/service",
                        dataSource = new kendo.data.DataSource({
                            transport: {
                                read: {
                                    url: crudServiceBaseUrl + "/Products",
                                    dataType: "jsonp"
                                },
                                update: {
                                    url: crudServiceBaseUrl + "/Products/Update",
                                    dataType: "jsonp"
                                },
                                destroy: {
                                    url: crudServiceBaseUrl + "/Products/Destroy",
                                    dataType: "jsonp"
                                },
                                create: {
                                    url: crudServiceBaseUrl + "/Products/Create",
                                    dataType: "jsonp"
                                },
                                parameterMap: function (options, operation) {
                                    if (operation !== "read" && options.models) {
                                        return { models: kendo.stringify(options.models) };
                                    }
                                }
                            },
                            batch: true,
                            pageSize: 20,
                            schema: {
                                model: {
                                    id: "ProductID",
                                    fields: {
                                        ProductID: { editable: false, nullable: true },
                                        ProductName: { validation: { required: true} },
                                        UnitPrice: { type: "number", validation: { required: true, min: 1} },
                                        Discontinued: { type: "boolean" },
                                        UnitsInStock: { type: "number", validation: { min: 0, required: true} }
                                    }
                                }
                            }
                        });

            $("#grid").kendoGrid({
                dataSource: dataSource,
                navigatable: true,
                pageable: true,
                height: 430,
                toolbar: ["Edit", "create", "save", "cancel"],
                columns: [
                            "ProductName",
                            { field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: 110 },
                            { field: "UnitsInStock", title: "Units In Stock", width: 110 },
                            { field: "Discontinued", width: 110 },
                            { command: "destroy", title: " ", width: 90}],
                editable: false
            });


            $('.k-grid-Edit').on("click", function () {

                $("#grid").kendoGrid({
                    dataSource: dataSource,
                    navigatable: true,
                    pageable: true,
                    height: 430,
                    toolbar: ["Edit", "create", "save", "cancel"],
                    columns: [
                            "ProductName",
                            { field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: 110 },
                            { field: "UnitsInStock", title: "Units In Stock", width: 110 },
                            { field: "Discontinued", width: 110 },
                            { command: "destroy", title: " ", width: 90}],
                    editable: true
                });

            });
于 2013-07-12T08:14:44.317 回答