Kendo Dropdownlist没有在第一条记录上更新Kendo Grid数据源?

时间:2013-02-28 22:09:43

标签: jquery drop-down-menu kendo-ui datasource kendo-grid

这是我的问题......

我希望将一个下拉列表绑定到我的Grid:


{
     field: "ContactTypeId",
     hidden: true
},
{
     field: "ContactTypeName",
     title: "Type",
     editor: ContactTypeAddressCombo
}

function ContactTypeAddressCombo(container, options) {
                $('<input placeholder="A" data-bind="value:ContactTypeId"/>')
                .appendTo(container)
                .kendoDropDownList({
                    autoBind: false,
                    dataTextField: "Name",
                    dataValueField: "ContactTypeId",
                    dataSource: {
                        type: "json",
                        serverFiltering: true,
                        transport: {
                            read: {
                                contentType: "application/json; charset=utf-8",
                                type: "POST",
                                url: "../Services/svcContact_Type.asmx/Search",
                                dataType: "json",
                                cache: false
                            },
                            parameterMap: function(options, operation) {
                                options.AddressFlag = 1;
                                options.PhoneFlag = 1;
                                options.EmailFlag = 1;
                                return kendo.stringify(options);
                            }
                        },
                        schema: {
                            data: "d"
                        }
                    },
                    index: 0
                });
            }

当我向网格添加新行时,一切正常, EXCEPT 。下拉列表加载正常并且选择了一个项目,但除非我更改为另一个项目,否则网格将无法识别所选项目(即使选择了项目,网格的数据源也会发送0)。

一种解决方案是让第一个项目始终为“选择一个”,其值为0,这将强制用户选择项目。但这远非理想。那么......还有其他建议吗?下拉列表是否有某种占位符?

由于

1 个答案:

答案 0 :(得分:2)

这个问题在互联网上被多次讨论,每个用户以不同的方式描述它。创建新项时,您应该设置默认值,以便MVVM框架可以正确分配DropDownList的选定值,或者您应该在edit事件的帮助下手动完成。

换句话说 - 你的模型属性不应该为null - 它应该是字符串或数字,或者当你使用DropDownList更改值时它不会被正确更新(用于DropDOwnList的整个dataItem将被指定为值)。

Here 是更多信息。