0

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

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 都发生变化?

4

0 回答 0