Dojo Dijit表单选择

Dojo Dijit表单选择,dojo,Dojo,关于此路径上的dgrid master/editor_more_widgets.html测试文件,我有一个问题: https://github.com/SitePen/dgrid/blob/master/test/editor_more_widgets.html 也许你应该下载整个软件包来查看文件。无论如何,有没有办法修复“Select Store”列,使其显示标签而不是值,就像“FilteringSelect Store”列那样?我为此创建了一个自定义插件。关键部分是renderCell函数

关于此路径上的dgrid master/editor_more_widgets.html测试文件,我有一个问题:

https://github.com/SitePen/dgrid/blob/master/test/editor_more_widgets.html

也许你应该下载整个软件包来查看文件。无论如何,有没有办法修复“Select Store”列,使其显示标签而不是值,就像“FilteringSelect Store”列那样?

我为此创建了一个自定义插件。关键部分是renderCell函数:

define([
    "dojo",
    "sb",
    "put-selector/put",
    "dgrid/editor",
    "dijit/form/Select"
], function(dojo, sb, put, editor, Select){
    dojo.global.starbug.grid.columns = dojo.global.starbug.grid.columns || {};
    dojo.global.starbug.grid.columns.select = function(column){

        //populate the cell with the label or value
        column.renderCell = function(object, value, cell, options, header){
            items = column.editorInstance.getOptions();
            for (var i in items) {
                if (value == items[i].value) value = items[i].label;
            }
            put(cell, 'span.'+value.replace(/ /g, '-').toLowerCase(), value);
        };

        column.editorArgs = {
            style:'width:100%',
            labelAttr:'label',
            store:sb.get(column.from, 'select')
        };

        column = editor(column, Select, "dblclick");

        return column;
    };
});

请注意,
sb
是我用来提供存储的自定义模块。您可以相应地修改它。

您应该使问题的标题更具信息性,并在帖子中添加更多标记,例如
javascript
dojo
dgrid