ExtJS 4,如何多选网格行以及单行也可点击?

时间:2014-09-02 21:56:06

标签: extjs checkbox grid extjs4.2

我正在尝试使用extjs 4.2.2创建一个网格。网格包含多行,如果我单击一行,则会弹出另一个页面,显示该行的详细信息。 网格位于面板中,因此视图代码为:

Ext.define("Application.view.foo.Panel", {
extend: "Ext.panel.Panel",
cls: 'foo.panel'
...
items: [
{
  itemId: "foo-bar",
  xtype: "grid",
  ...
  ,selType: 'checkboxmodel'
  ,columns: [
      xtype: 'templatecolumn'

控制器中监听行选择事件的代码如下:

"panel[cls~=foo.panel] #foo-bar": {
 select: function(selectionModel, record, index) { .... }

现在,我要为每一行添加复选框以进行批量编辑,我添加了selType: 'checkboxmodel',但问题是我无法点击复选框:如果我点击该框,它会进入详细信息页面,而不仅仅是“检查”,因为控制器中的代码会监听“点击”行。事件

有任何建议可以实施吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我建议更改行单击侦听器以使用操作列查看行详细信息。

{
        xtype:'actioncolumn',
        width:50,
        items: [{
            // Url is just for example (not working)
            icon: 'extjs/examples/shared/icons/fam/showDetails.png',  // Use a URL in the icon config
            tooltip: 'Show details',
            handler: function(grid, rowIndex, colIndex) {
                var rec = grid.getStore().getAt(rowIndex);
                // do your functionality here...
            }
}

在每一行中都会出现一个图标,然后您就可以多行选择行并查看每一行的详细信息。希望有所帮助。

答案 1 :(得分:0)

尝试收听cellclick事件。

cellclick: function(view, td, cellIndex, record, tr, rowIndex, e, eOpts) {
   if(cellIndex != your_checkbox_column) {
      //do your info page stuff here    
   }
}