data分页grid设置多选,默认的切换分码之前页选择的数据不会被记住,如果要记住之前页选择的数据,参考如下实现
1.定义一个data记录选择的数据(本例data的xid是memory),指定义了一个主键字段如下:

    <div component="$UI/system/components/justep/data/data" autoLoad="true"
      xid="memory" idColumn="fID" confirmDelete="false" onBeforeNew="memoryBeforeNew">
      <column name="fID" type="String" xid="xid1"/>
    </div>

2.在model的构造函数中定一个实例变量(this.checkRowid)用来存储grid当前操作选中行的id

	var Model = function(){
		this.callParent();
		this.checkRowid = "";
	};

3.在grid的onRowChecked事件中判断选择状态向memory这data中插入或者删除数据

	Model.prototype.mainGridRowChecked = function(event){
		var memeryData = this.comp("memory");
		this.checkRowid = event.rowID;//选择行的ID
	    //判断如果是选中数据就向memory这个data中插入一条数据把选择行的ID赋值给主键值
	    //如果是取消选中就把memory这个data中主键值为选择行的ID的记录删除
	    if(event.checked == true){
		   memeryData.newData({
		   defaultValues : [ {
					"fID" : this.checkRowid
				} ]
		   })
	    }else{
		   memeryData.deleteData(memeryData.getRowByID(this.checkRowid));
	   }
	};

4.data分页切换页码时会触发data的refresh相关的事件,可以在onAfterRefresh事件中判断memory中是否有当前页中的数据

	Model.prototype.mainDataAfterRefresh = function(event){
		var data = event.source;
		var memeryData = this.comp("memory");
		var grid = this.comp("mainGrid");
		//遍历memory这个data中的数据获取主键值并放到memeryIDs数组中
		var memeryIDs = [];
		memeryData.each(function(param) {
			memeryIDs.push(param.row.getID());
		});
		//遍历grid绑定的data获取rowid,判断在memeryIDs数组中是否存在
		//如果存在就调用grid上的setRowChecked方法设置行选中状态
		data.each(function(param) {
			var rowid = param.row.getID()
			var index = $.inArray(rowid,memeryIDs);
			if(index >=0){
				grid.setRowChecked(rowid,true);
			}
		});
	};

5.在memory的onBeforeNew中判断已经存在的数据不再插入

	Model.prototype.memoryBeforeNew = function(event){
	//判断要插入的数据在data中是否存在如果存在就中断当前new动作
		var data = event.source;
		var memeryIDs = [];
		data.each(function(param) {
			memeryIDs.push(param.row.getID());
		});
		var index = $.inArray(this.checkRowid,memeryIDs);
		if(index >=0){
			event.cancel = true;
		}	    	   	
	};

需要注意最终获取grid多选的数据时从memory中获取,这个data中只是记录了选择行的rowid,如果还要获取其他关系的值,在memory中再添加关系,newData的值同时给其他关系赋值
获取选择的数据,如下:

	Model.prototype.button1Click = function(event){
		var fCheckDatas = [];
		this.comp('memory').each(function(param) {
			fCheckDatas.push(param.row.val("fID"));
		})
		alert("选中项:" + fCheckDatas.toString());
	};