extjs grid checkbox 默认选中

extjs grid checkbox 默认选中

(2010-04-01 16:21:05)
标签:

extjs

checkbox

it

分类:extjs
var sm2= new Ext.grid.CheckboxSelectionModel({
                   singleSelect:this.is_singleSelect,
                    renderer:this.checkboxRenderer.createDelegate(this) //注意添加这个renderer
 });           
           this.grid = new Ext.grid.GridPanel({//列表
                        border:false,  
                        height:300,
                        store: ds,
                        cm: colModel,
                        sm: sm2,
            });
//定义renderer
checkboxRenderer:function(value, cellmeta, record,rowIndex, columnIndex, store){
         var row =  this.grid.getStore().getById(record.id);
         var id = row.get(this.id_key); //this.id_key 是一行的key 这样,可以根据这一行资料确定是否需要默认选择或根本就不出现选择框。
         var isSelect = false;
//选中逻辑
        if(!isSelect){
            return '<div  class="x-grid3-row-checker">&nbsp;</div>';
        }else{
            return '';
        }
                
  },
Ext.onReady(function() {
  var testData = [
    ['1','xxxxx'],
    ['2','aaaa'],
    ['3','xxyyy'],
    ['4','bbbb']
  ];

  var selectValue = ['bbbb','aaaa']

	var store = new Ext.data.SimpleStore({
      fields:['id','name']
	});
  var sm = new Ext.grid.RowSelectionModel({
    listeners:{
      'rowselect':function(sm,rowIndex,r){
        Ext.log("select",rowIndex,r.get('name'))
      }
    }
  });
	var grid = new Ext.grid.GridPanel({
	    width: 800,
	    height: 500,
	    autoScroll: true,
	    store: store,
      sm:sm,
	    columns: [
	        sm,
	        { header: '序号', dataIndex: 'id', sortable: true },
	        { header: '名字', dataIndex: 'name', sortable: true }
	    ]
	});
  var v = new Ext.Viewport({
    items:[grid]
  });
  store.on('load',function(store,records,options){
    var arr=[];
    for(var i=0;i<records.length;i++){
      var record = records[i];
      var isMatch = selectValue.indexOf(record.get('name'))!=-1;
      if(isMatch){
        arr.push(record);
      }
    }
    sm.selectRecords(arr);
  },this,{delay:1000})
  store.loadData(testData);
});

提问者对于答案的评价:
确实是需要延时,谢谢你了~~

其他回答

Ext.grid.CheckboxSelectionModel 是继承Ext.grid.RowSelectionModel的.
看下API:
selectRecords( Array records, [Boolean keepExisting] ) : void
Select records.

Parameters:

records : Array
The records to select

keepExisting : Boolean
(optional) True to keep existing selections
Returns:
void

你可以在store的load事件里面,遍历查找你要的record,
然后执行grid.getSelectionModel().selectRecords(

var sm = grid. getSelectionModel();//获得选择模型
sm.selectAll();
sm.selectFirstRow();
sm.selectLastRow();
selectNext();
selectPrevious();
selectRange( Number startRow, Number endRow, [Boolean keepExisting] ) ;
selectRecords( Array records, [Boolean keepExisting] );
selectRow( Number row, [Boolean keepExisting] );
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值