0
votes

I'm quite new using kendo grids.

So far I've managed to do a few stuff and got a workaround for all my problems.

I have a grid with 2 columns. One column is a product code that the user should enter, and the other is product quantity that should be filled automatically after the user enter the product code. This should be done on change event.

The product quantity is obtained by a service.

So far I have the following code:

var dataSource = new kendo.data.DataSource({
    batch: false,
    autoSync: false,
    data: [],
    pageSize: 20,
    schema: {
        model: {
            id: "ProductID",
            fields: {
                ProductCode: { type: "string", validation: { required: true } },
                ProductQuantity: { type: "number", validation: { required: false, editable: false } }
            }
        }
    },
    edit: function (e) {
        if (e.model.isNew() == false) {
            $('[name="ProductQuantity"]').attr("readonly", true);
        }
    },
    change: function (e) {
        if (e.action == "itemchange") {
            debugger;
            apModel.getProductQuantities(e.items[0].ProductCode).ifFetched().then(function (data) {
                var data = JSON.parse(data.Response);
            })
            //how to access next cell???

            $("#ap-grid").data("kendoGrid").saveRow();

        }
    }
});

$("#ap-grid").kendoGrid({
    dataSource: dataSource,
    pageable: false,
    height: 550,
    toolbar: ["create"],
    columns: [
        { field: "ProductCode", title: "Product Code" },
        { field: "ProductQuantity", title: "Quantity" },
                                { command: ["edit", "destroy"], title: " ", width: "250px" }],
    editable: "inline",
});

I can't find a way how to access the next cell to add the data to it.

Can you give me a hint?

thanks in advance,

André

1

1 Answers

0
votes

When you set e.items[0].ProductQuantity in OnChange event handler grid cell should automatically update value if datasource bind correctly.

According to kendo docs:

e.items - The array of data items that were affected (or read).

That means it reference at original row of datasource.