ExtJs Grid通过多选框多选删除多行数据

huzai 2014-11-24

//运用了选择模型
var del=function del(button,url){
        //首先获得关联删除操作的grid
        var grid = button.ownerCt.ownerCt;
                //获得被选择的数据模型
		var selmodels= grid.getSelectionModel();
                   //返回模型中被记录的数组
		var selections= grid.getSelectionModel().getSelection();
                //如果不大于1条等于没选中
		if(selections.length<1){
			Ext.Msg.alert('提示','请先选择一行!')
		}else{
                 //如果选中且确认删除则执行操作
		Ext.MessageBox.confirm("","确定要删除所选信息吗?",function(choice){
         	if(choice == 'yes'){
                //得到一个维持所有当前已选择的记录的混合集合。
    	        var selecteds= grid.getSelectionModel().selected;
                //获取grid的store
		var store = grid.getStore();
                //获取store记录总数量
		var rowlength=store.getCount();
		var params='';
                //遍历所有记录
		for(var i=rowlength-1;i>=0;i--){
                   //如果选择集里有所有记录里被选择的记录的索引
		   if(selmodels.isSelected(i)){
                           //获取索引所对应的模型下的值
		   	   params+=store.getAt(i).get('objectid')+',';
                        //移除对应索引下的值
		       store.remove(store.getAt(i));
		   }
		}
                //处理数据
		urlparams=params.slice(0,params.lastIndexOf(','));
		Ext.Msg.alert('参数',urlparams);
		Ext.Ajax.request( {
                                //发送ajax请求 
				url : url,
				params: {
			         objectids:urlparams
			    },
				success : function(response, opts) {
					grid.view.refresh();
				},
				failure:function(response){
					//Ext.Msg.alert('失败',response.responseText);
				}
			});}
    	 	});
		}
        }

相关推荐