我对extjs没有太多经验。 我有一个网格,其中包含从json快速创建的列。该网格具有一个小部件列。该小部件是一个细分按钮。
我需要使用网格的viewmodel中的数据来更改“ pressed”按钮的属性。我尝试了几种方法,但没有运气。
在此线程中,只有一个按钮可以使用,但是我需要将其与几乎10个按钮一起使用。 Extjs 6.5.3 Binding hidden property of widgetcolumn from record values
这是我生成细分按钮的方式
function getListaEtiquetas(){
///conection code
while ($etiqueta = $conexion->fetchObject($resultado)) {
array_push($listaEtiquetas,
array(
'text' => utf8_encode($etiqueta->tipe_nombre),
'value' => $etiqueta->tipe_codigo,
'toolTip' => utf8_encode($etiqueta->tipe_descripcion),
'bind' => array('pressed' => "{record.E$etiqueta->tipe_codigo}", 'text' => '{listadoRespuestas.record.esen_codigo}')
)
);
}
}
function generateColumns()
///the rest of the grids columns
//this is how I generate widget column
array(
'text' => 'Etiquetas',
'width' => 150,
'align' => 'center',
'stopSelection' => true,
'locked' => true,
'xtype' => 'widgetcolumn',
'cellWrap' => true,
'rowViewModel' => true,
'widget' => array(
'xtype' => 'segmentedbutton',
'rowViewModel' => true,
'vertical' => 'true',
'ui' => 'decline',
'allowMultiple' => 'true',
'items' => getListaEtiquetas(),
'listeners' => array('toggle' => 'onClickTag')
)
}
网格和视图模型
Ext.define('Eodd.view.listado.ListadoEncuestas', {
extend: 'Ext.grid.Panel',
id : 'grdEncuestas',
title: 'Listado encuestas',
requires: [
'Eodd.viewmodel.ListaRespuestas'
],
viewModel: {
type: 'ListaRespuestas'
},
bind: '{Encuestas}',
renderTo: Ext.getBody(),
xtype: 'grid',
grouped: true,
disableSelection: true,
autoScroll : true,
height: 420,
reference: 'listadoRespuestas',
columnLines: true,
margin: "10 10 10 10",
//store: 'eoddEncuestas',
default: {width: 60},
rowViewModel: true,
dockedItems:
[{
xtype: 'pagingtoolbar',
dock: 'bottom',
store: 'eoddEncuestas',
itemId: 'eoddPaginacionRespuestas',
displayInfo: true,
displayMsg: 'Mostrando {0} - {1} respuestas de {2}',
emptyMsg: "Sin resultados"
}]
});
Ext.define('Eodd.viewmodel.ListaRespuestas', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.ListaRespuestas',
model: 'Encuestas',
stores: {
Encuestas: {
extend: 'Ext.data.Store',
storeId: 'eoddEncuestas',
alias: 'store.eoddEncuestas',
model: 'Eodd.model.Encuesta',
autoLoad: true,
pageSize: 20,
remoteSort: true,
remoteFilter: true,
proxy: {
type: 'ajax',
enablePaging : true,
url: 'data/encuestas.php',
extraParams: {
o : 'respuestas'
},
reader:
{
type: 'json',
rootProperty: 'data',
successProperty : 'success',
totalProperty: 'total'
}
}
}
},
});
网格工作正常,但是我可以按下按钮以更改状态。我已经搜索了大约3天。我真的不知道我在做什么错。
谢谢!