Extjs里有个actioncolumn,但actioncolumn只能添加一系列button,不能既有字又有button
如何能在column里增加html标签,并给button添加事件呢?
1. 首先,在column里重写renderer方法,方法里拼html语句
View里主要代码如下:
columns: [{ header: 'Complex column', width: 90, renderer: function(value, cellmeta, record) { var display="Text"; display+='</br>'; display+='<input type="image" class="add" src="extjs/resources/themes/images/spinner.gif" alt="Add" />'; display+='<input type="image" class="edit" src="extjs/resources/themes/images/spinner.gif" alt="Edit">'; display+='<input type="image" class="delete" src="extjs/resources/themes/images/spinner.gif" alt="Delete">'; return display; } }]
2. 在Controller里添加事件
init : function() { console.log('The window was rendered'); this.control({ 'ResultPage > grid[id=resultGrid]':{ cellclick:this.cellClick } }); }, cellClick : function(grid, td, cellIndex, record, tr, rowIndex, e, eOpts) { console.log("cell clicked"); var add = e.getTarget('.add'); var edit = e.getTarget('.edit'); var del = e.getTarget('.delete'); if (add) { console.log("click add"); } if(edit){ console.log("click edit"); } if(del){ console.log("click del"); } }
这里有一点要注意,html里用class标识,然后在事件里用getTarget('.add')去寻找。我尝试在html里用id,getTarget(id)找不到。