在列渲染器中捕获rowIndex时遇到问题

时间:2012-02-22 01:48:34

标签: extjs4 renderer

我正在尝试使用CheckBoxSelectionModel检查网格中的框 当网格从我的商店加载数据时,如何获取正在加载的行的rowIndex?我想测试特定列dataIndex的值,并根据我想要选择行开头的框的值。 此代码不起作用,但这是我想要做的:

   columns:

            [
                    {dataIndex: 'de_sealed_doc', renderer: function(value,rowIndex,store,record){

                    console.log('rowIndex == '+rowIndex);

                    var sealedDocIndex = this.rowIndex;

                    //var gridModel = grid.getSelectionModel().select(2);

                    grid.getSelectionModel().select(sealedDocIndex);

                    //grid.getSelectionModel().selectAll();

                    console.log('sealedDocIndex --> '+sealedDocIndex);
                    //console.log('gridModel--> '+gridModel);
                    console.log('value--> '+value);



                    },

                    hidden: true},

                    {header: 'Document #', dataIndex: 'de_seqno', width: 100},
                    {header: 'Docket Text', dataIndex: 'docketText', renderer: this.customRenderer, width: 1000},
                    {header: 'Document(s)', dataIndex: 'docsDisplay', width: 500}

            ],

有人可以帮助我吗?如果您需要查看更多代码,以便更有意义,请告诉我。

1 个答案:

答案 0 :(得分:0)

您应该能够在对代码进行少量修改的情况下使用它。以下是您需要的修补程序:

  1. 您需要拥有正确的renderer function。以下示例将帮助您获取所需的所有数据:

    renderer: function(value,meta,record,rowIndex,colIndex,store,view){ // code goes here }

  2. 确保正确调用Selection模型的select方法。这是一个例子:

    selModel.select(rowIndex,true); // The second param set true is MUST if you need multiselect!

  3. 所以,以下是您的代码的样子:

    renderer: function(value,meta,record,rowIndex,colIndex,store,view){     
    
        if(record.get('de_sealed_doc') == true){  // put your correct condition
            grid.getSelectionModel().select(rowIndex,true);
        }
    }