Kendo UI 使用经验点滴(六)——Grid批量编辑中的Checkbox编辑器另一种方法

在这个例子中,有一个是否全职的字段,ISFULLTIME,这个字段是数值型,用1和0表示true和false,在编辑时,我们希望使用checkbox进行编辑,但希望获得的值是1和0,而不是true和false。
在model中的定义这个字段和一个附加字段,用于编辑:

                               model: {
                                    id: "OBJECTID",
                                    fields: {
                                        ...
                                        ISFULLTIME: { editable: true },
                                        ISFULLTIME_DICTEXT: { editable: true}
                                    }

在columns中的定义,注意这里我们编辑的是ISFULLTIME_DICTEXT:

                        columns: [
                            ...
                            { field: "ISFULLTIME_DICTEXT", title: "是否全职", editor: customBoolEditor, template: "#=GetFullTime(ISFULLTIME)#" },
                        ],

这里我们希望显示“是”和“否”,因此模板调用了转换函数:

               function GetFullTime(va) {
                    if (va == 1) return "是";
                    return "否";
                }

自定义的编辑器如下:


                //自定义编辑控件,checkbox
                function customBoolEditor(container, options) {
                    var guid = kendo.guid();
                    $('<input class="k-checkbox" id="' + guid + '" type="checkbox" name="' + options.field + '" data-type="boolean" data-bind="checked:' + options.field + '">').appendTo(container)
                        .on("click", function (e) {
                            var field = options.field.replace("_DICTEXT", "");
                            if (e.target.checked)
                                options.model[field] = 1;
                            else
                                options.model[field] = 0;
                        });
                    $('<label class="k-checkbox-label" for="' + guid + '">&#8203;</label>').appendTo(container);
                }

这里,在控件值改变时,将模型相关的值改变为1或0。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容