使用自定义编辑器保存列可提供嵌套列数组

时间:2014-06-09 11:48:42

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

我正在尝试使用下拉选择作为我的一个列的编辑器,定义为:

function phoneTypeEditor(container, options) {
    $('<input required name="' + options.field + '" data-text-field="typeName" data-value-field="typeId" data-bind="value:' + options.field + '"/>')
            .appendTo(container)
            .kendoDropDownList({
                autoBind: false,
                dataSource: [
                    {
                        "typeName": "Work",
                        "typeId": 1
                    },
                    {
                        "typeName": "Branch",
                        "typeId": 2
                    },
                    {
                        "typeName": "Home",
                        "typeId": 3
                    },
                    {
                        "typeName": "Mobile",
                        "typeId": 4
                    }
                ],
                close: function()
                {

                }
            });
}

在我的模特中,我有:

model: {
                    id: 'phoneId',
                    fields: {
                        phoneId: {
                            type: 'number'
                        },
                        type: {
                            type: 'string',
                            editable: true,
                            defaultValue: {
                                typeId: 1,
                                typeName: "Work"
                            },
                        },
                        tel: {
                            type: 'string',
                            editable: true
                        }
                    }
                }

最后我的专栏:

{
            field: 'typeId',
            headerTemplate: '<b>Type</b>',
            filterable: false,
            editor: phoneTypeEditor,
            width: '80px',
            template: '#=typeName#'
        },

但是当我尝试在网格中创建一行时,我的帖子数据如下所示:

phoneId:0
type[typeId]:1
type[typeName]:Work
tel:
typeName:
contactId:97558

应该是:

phoneId:0
typeId:1
typeName:Work
tel:
typeName:
contactId:97558

我的网格中有一个很薄且空的新行。

如何让它正常工作?

PS如果我没有:

typeName: {
                        type: 'string'
                    }

在我的模型中,我收到一条错误,指出typeName未定义。


我现在有:

model: {
                    id: 'phoneId',
                    fields: {
                        phoneId: {
                            type: 'number'
                        },
                        typeId: {
                            type: 'number',
                            defaultValue: 1
                        },
                        tel: {
                            type: 'string',
                            editable: true
                        },
                        typeName: {
                            type: 'string',
                            defaultValue: 'Work',
                        }
                    }
                }

和...

columns: [
        {
            field: 'phoneId',
            headerTemplate: '<b>Phone Id</b>',
            filterable: false,
            width: '50px',
            hidden: true
        },
        {
            field: 'typeId',
            headerTemplate: '<b>Type</b>',
            filterable: false,
            editor: phoneTypeEditor,
            width: '80px',
            template: '#=typeName#'
        },
        {
            field: 'tel',
            headerTemplate: '<b>Number</b>',
            filterable: false,
        }
    ],

但现在当我更改下拉列表中的选项时,似乎您没有更改它,但项目的实际数字ID已更改,而不是文本。我怎样才能使typeId和typeName都改变?

0 个答案:

没有答案