小部件列绑定中的EXTJS Segmentedbutton不起作用

时间:2019-07-10 18:57:18

标签: javascript viewmodel extjs6

我对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天。我真的不知道我在做什么错。

谢谢!

0 个答案:

没有答案