在Kendo Grid中为“Create”设置数据项

时间:2014-06-09 09:27:23

标签: javascript jquery kendo-ui kendo-grid kendo-datasource

我需要传递一个额外的参数以及我的网格数据源创建例程但我无法让它工作。

我试过了:

$('#contactPhonesGrid').data("kendoGrid").dataSource.dataItem.set('phoneId', phoneId)

但是这给了我错误Cannot read property 'set' of undefined

我的网格代码:

function contactPhoneGrid() {
    var contactPhoneGrid = $('#contactPhonesGrid').kendoGrid({
        dataSource: {
            pageSize: 25,
            serverSorting: false,
            serverFiltering: true,
            sort: {
                field: "ref",
                dir: "asc"
            },
            transport: {
                read: {
                    url: ROOT + 'Contact/contactPhoneGrid',
                    dataType: 'json',
                    type: 'POST'
                },
                create: {
                    url: ROOT + 'Contact/createContactPhone',
                    type: 'POST'
                },
                update: {
                    url: ROOT+'Contact/updateContactPhone',
                    dataType: 'json',
                    type: 'POST'
                },
                destroy: {
                    url: ROOT+'Contact/deleteContactPhone',
                    dataType: 'json',
                    type: 'POST'
                }
            },
            error: function(e) {
                alert(e.errorThrown + "\n" + e.status + "\n" + e.xhr.responseText);
            },
            schema: {
                data: "data",
                model: {
                    id: 'phoneId',
                    fields: {
                        phoneId: {
                            type: 'number'
                        },
                        type: {
                            type: 'string',
                            editable: true
                        },
                        tel: {
                            type: 'string',
                            editable: true
                        },
                        typeId: {
                            type: 'number',
                            editable: true
                        }
                    }
                }
            }
        },
        autoBind: false,
        columns: [
            {
                field: 'phoneId',
                headerTemplate: '<b>Phone Id</b>',
                filterable: false,
                width: '50px',
                hidden: true
            },
            {
                field: 'type',
                headerTemplate: '<b>Type</b>',
                filterable: false,
                editor: phoneTypeEditor,
                width: '80px',
               // template: '#=type#'
            },
            {
                field: 'tel',
                headerTemplate: '<b>Number</b>',
                filterable: false,
            }
        ],
        edit: function(e) {
        var ddl = e.container.find('[data-role=dropdownlist]').data('kendoDropDownList');
        if (ddl) {
            ddl.open();
        }
    },
        height: '75',
        filterable: true,
        editable: true,
        sortable: true,
        scrollable: true
    }).data("kendoGrid");
}

1 个答案:

答案 0 :(得分:0)

dataItem是一种方法,因此您不应将其用作:

$('#contactPhonesGrid').data("kendoGrid").dataSource.dataItem

但是:

$('#contactPhonesGrid').data("kendoGrid").dataSource.dataItem(something here)

请参阅此处的文档:http://docs.telerik.com/kendo-ui/api/web/grid#methods-dataItem