我为此创建了一个自定义插件。关键的部分是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' – 2013-04-14 21:12:19