您好我正在尝试在网格中插入一个新行,但其中一列实际上是两个值的串联,我想做这样的事情:
var scopename = newScopeRef.down('textfield[id=scope_name]').getValue();
var prodname = newScopeRef.down('combobox[id=prd]').getRawValue();
var relname = newScopeRef.down('combobox[id=p_rls]').getRawValue();
var editscopegrid = newScopeRef.down('gridpanel[id=editedscope_grid]'); //my grid
editscopegrid.getView().getStore().removeAll();
editscopegrid.getView().getStore().add({
name_scope : scopename,
prodrel : concat(prodrel + ',' prodname + ' ' + relname)});
editscopegrid.getView().refresh();
正如您所看到的,我希望将网格列prodrel
的现有值与组合框prodname
和relname
的值相连,并以空格分隔。
我正在使用带有MVC架构的Extjs 4.x,上面是我面板上按钮“更新”的点击事件的处理程序。
我该怎么办呢?
答案 0 :(得分:3)
如果您有明确的模型定义,可以添加prodrel
字段和convert
函数,并在那里进行连接。
Ext.define('MyModel', {
extend : 'Ext.data.Model',
fields : [
'name_scope',
'prodname',
'relname',
{
name : 'prodrel',
convert : function (v, rec) {
return rec.get('prodname') + ' ' + rec.get('relname');
}
}
]
}
然后你可以像这样添加一个实例到商店......
editscopegrid.getView().getStore().add({
name_scope : scopename,
prodname : prodname,
relname : relname});