Extjs 4 actioncolumn问题

时间:2016-04-13 11:07:56

标签: javascript extjs extjs4

我有Ext.grid.Panel这个项目:

items:[
                   {
                           xtype:'actioncolumn', 
                           width:20,
                           align:'center',
                           items: [
                                   {
                                       icon:'resources/images/icons/table_edit.png',
                                       tooltip: 'Edita Registro',
                                       action:'edit'
                                   },
                           ]
                   },
                   {header:'<span style="color:blue;">Estado</span>', dataIndex:'testado', width:90},
                   {header:'<span style="color:blue;">Cliente</span>', dataIndex:'tcliente', width:110, sortable: true},
                   {header:'<span style="color:blue;">N&#176; Expediente</span>', dataIndex:'Expediente', width:100},
                   {header:'<span style="color:blue;">Organismo</span>', dataIndex:'torganismo', width:255, sortable: true},
                   {header:'<span style="color:blue;">Convocatoria</span>', dataIndex:'F_Convocatoria', width:80, sortable: true},
                   {header:'<span style="color:blue;">Presentacion</span>', dataIndex:'F_Presentacion', width:80, sortable: true},
                   {header:'<span style="color:blue;">Aviso</span>', dataIndex:'F_Aviso', width:80, sortable: true},
                   {header:'<span style="color:blue;">Importe sin IVA</span>', dataIndex:'Total_Licitacion_sIVA', width:105, sortable: true},
                   {header:'<span style="color:blue;">Responsable</span>', dataIndex:'tresponsable', width:140, sortable: true},
            ]

在我的控制器中,我想在用户点击actioncolumn的按钮时提出。我有以下代码:

this.control({
    'viewGridRECO actioncolumn':{
        click:this.onPulsarEditar
    }
});

使用我的控制器中的前一个代码,onPulsarEditar函数在用户单击action列的单元格中的任何位置时执行,但我希望它仅在单击按钮时执行,而不是在action列的单元格中的任何位置执行。

我试图将action:'edit'属性放在按钮和控制器中:

this.control({
    'viewGridRECO actioncolumn button[action=edit]':{
        click:this.onPulsarEditar
    }
});

没有任何事情发生。

1 个答案:

答案 0 :(得分:2)

正如@Abdul Rehman Yawar Khan发表评论以查看this帖子,更新后我的代码是:

在视图中,column items

items:[
                   {
                           xtype:'actioncolumn', 
                           width:20,
                           align:'center',
                           items: [
                                   {
                                       icon:'resources/images/icons/table_edit.png',
                                       tooltip: 'Edita Registro',
                                       handler: function(view, rowIndex, colIndex, item, e, record, row) {
                                            this.fireEvent('itemClick', view, rowIndex, colIndex, item, e, record, row, 'edit');
                                       }
                                   }
                           ]
                   },
                   {header:'<span style="color:blue;">Estado</span>', dataIndex:'testado', width:90},
                   {header:'<span style="color:blue;">Cliente</span>', dataIndex:'tcliente', width:110, sortable: true},
                   {header:'<span style="color:blue;">N&#176; Expediente</span>', dataIndex:'Expediente', width:100},
                   {header:'<span style="color:blue;">Organismo</span>', dataIndex:'torganismo', width:255, sortable: true},
                   {header:'<span style="color:blue;">Convocatoria</span>', dataIndex:'F_Convocatoria', width:80, sortable: true},
                   {header:'<span style="color:blue;">Presentacion</span>', dataIndex:'F_Presentacion', width:80, sortable: true},
                   {header:'<span style="color:blue;">Aviso</span>', dataIndex:'F_Aviso', width:80, sortable: true},
                   {header:'<span style="color:blue;">Importe sin IVA</span>', dataIndex:'Total_Licitacion_sIVA', width:105, sortable: true},
                   {header:'<span style="color:blue;">Responsable</span>', dataIndex:'tresponsable', width:140, sortable: true},
            ]

在控制器中:

this.control({
    'actioncolumn':{
        itemClick:this.onPulsarEditar
});

请注意,控制器中itemClick的actioncolumn的写入方式与在视图处理程序事件中的写入方式相同。

在函数onPulsarEdit的控制器中,您可以根据需要添加执行函数所需的所有代码。