easyui的datagrid批量处理时的问题 datagridssheasyui 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在 remove 、append 或者 insert之后记得执行 datagrid 的 acceptChanges方法 错了,是在 deleteRow、appendRow 或者 insertRow之后记得执行 datagrid 的 acceptChanges方法 function ajaxTable(){ //加载表格 $('#userTable').datagrid({ toolbar:[{//正上方工具栏 text:'添加用户', iconCls:'icon-add', handler:function(){ //点击工具栏运行的js方法 openDialog_add(); } },'-',{ text:'批量删除', iconCls:'icon-cancel', handler:function(){ batch('delete'); } },'-',{ text:'批量启用', iconCls:'icon-ok', handler:function(){ batch('available'); } },'-',{ text:'批量禁用', iconCls:'icon-remove', handler:function(){ batch('invalid'); } },'-',{ text:'信息查询', iconCls:'icon-search', handler:function(){ //点击工具栏运行的js方法 openDialog_search(); } }], pageNumber : 1, loadMsg:'数据加载中,请稍后...', pageList:[10,30,50,100], //设置每页显示多少条 onLoadError:function(){ alert('数据加载失败!'); }, queryParams:{//查询条件 }, onClickRow:function(rowIndex, rowData){ //取消选择某行后高亮 $('#userTable').datagrid('unselectRow', rowIndex); }, onLoadSuccess:function(){ var value = $('#userTable').datagrid('getData')['errorMsg']; if(value!=null){ alert("错误消息:"+value); } } }).datagrid('acceptChanges');}/** * 修改状态的Ajax * @param url * @return */function changeStatus(url){ $.ajax({ async : false, cache:false, type: 'POST', dataType : "json", url:url,//请求的action路径 error: function () {//请求失败处理函数 alert('请求失败'); },success:function(data){ if(data!=null){//返回异常信息 $.messager.alert('错误提示',data.errorMsg,'error'); } reloadTable(); } });}/** * 批量操作 * @return */function batch(flag){ if($('#userTable').datagrid('getSelected')){ //首先如果用户选择了数据,则获取选择的数据集合 var ids = []; var cods = []; var selectedRow = $('#userTable').datagrid('getSelections'); for(var i=0;i<selectedRow.length;i++){ ids.push(selectedRow[i].userid); cods.push(selectedRow[i].availability); } var userid = ids.join(','); if(flag == "available"){ //启用操作 $.messager.confirm('启用提示', '你确定启用下列用户吗?<br/>'+cods.join(','), function(r){ if (r){ var url = root+'/useropr/userOpr!ajaxSetUserStatus.action?userid='+userid; changeStatus(url); } }); }else if(flag == "invalid"){ //禁用操作 $.messager.confirm('禁用提示', '你确定禁用下列用户吗?<br/>'+cods.join(','), function(r){ if (r){ var url = root+'/useropr/userOpr!ajaxSetUserStatus.action?userid='+userid; changeStatus(url); } }); }else{ //删除操作 $.messager.confirm('删除提示', '你确定永久删除下列用户吗?<br/>'+cods.join(','), function(r){ if (r){ var url = root+'/useropr/userOpr!delNews.action?userid='+userid; changeStatus(url); } }); } }//end of if}这个是我的源码,我已经加了acceptChanges呀,还是不行呀。 问题在reloadTable方法中,在你调用了datagrid的reload方法之后执行 $('#userTable').datagrid("acceptChanges")acceptChanges方法的作用看API就明白了 实在不行在数据重新加载之前执行一句 $('#userTable').datagrid("unselectAll"); 试了一下, $('#userTable').datagrid("acceptChanges")还是不行,不过$('#userTable').datagrid("unselectAll");可以解决问题,不过总感觉这个办法不太合理,呵呵,不知道是不是datagrid的BUG呀这个是。 http://blog.csdn.net/majian_1987/article/details/8716448 js调用div求教 javascript中如何读取cookie的userName,请高手帮忙~~ 怎么通过js手动把discuz nt登陆的cookie写入浏览器客户端!谢谢 请教一段JS代码 求一播放列表的制作 怎样隐藏横向滚动条但不影响纵向滚动条??? 关于前面TABLE指定某行或某列背景颜色闪烁的问题。 小问题,迅速给分! 再开帖问iframe的问题 JSon数据解析 求助一下,为何js右键事件,点一次右键执行好几遍呢 求正则:判断是否是域名+端口(在线等)
function ajaxTable(){
//加载表格
$('#userTable').datagrid({
toolbar:[{//正上方工具栏
text:'添加用户',
iconCls:'icon-add',
handler:function(){
//点击工具栏运行的js方法
openDialog_add();
}
},'-',{
text:'批量删除',
iconCls:'icon-cancel',
handler:function(){
batch('delete');
}
},'-',{
text:'批量启用',
iconCls:'icon-ok',
handler:function(){
batch('available');
}
},'-',{
text:'批量禁用',
iconCls:'icon-remove',
handler:function(){
batch('invalid');
}
},'-',{
text:'信息查询',
iconCls:'icon-search',
handler:function(){
//点击工具栏运行的js方法
openDialog_search();
}
}],
pageNumber : 1,
loadMsg:'数据加载中,请稍后...',
pageList:[10,30,50,100], //设置每页显示多少条
onLoadError:function(){
alert('数据加载失败!');
},
queryParams:{//查询条件
},
onClickRow:function(rowIndex, rowData){
//取消选择某行后高亮
$('#userTable').datagrid('unselectRow', rowIndex);
},
onLoadSuccess:function(){
var value = $('#userTable').datagrid('getData')['errorMsg'];
if(value!=null){
alert("错误消息:"+value);
}
}
}).datagrid('acceptChanges');
}
/**
* 修改状态的Ajax
* @param url
* @return
*/
function changeStatus(url){
$.ajax({
async : false,
cache:false,
type: 'POST',
dataType : "json",
url:url,//请求的action路径
error: function () {//请求失败处理函数
alert('请求失败');
},success:function(data){
if(data!=null){//返回异常信息
$.messager.alert('错误提示',data.errorMsg,'error');
}
reloadTable();
}
});
}/**
* 批量操作
* @return
*/
function batch(flag){
if($('#userTable').datagrid('getSelected')){
//首先如果用户选择了数据,则获取选择的数据集合
var ids = [];
var cods = [];
var selectedRow = $('#userTable').datagrid('getSelections');
for(var i=0;i<selectedRow.length;i++){
ids.push(selectedRow[i].userid);
cods.push(selectedRow[i].availability);
}
var userid = ids.join(',');
if(flag == "available"){
//启用操作
$.messager.confirm('启用提示', '你确定启用下列用户吗?<br/>'+cods.join(','), function(r){
if (r){
var url = root+'/useropr/userOpr!ajaxSetUserStatus.action?userid='+userid;
changeStatus(url);
}
});
}else if(flag == "invalid"){
//禁用操作
$.messager.confirm('禁用提示', '你确定禁用下列用户吗?<br/>'+cods.join(','), function(r){
if (r){
var url = root+'/useropr/userOpr!ajaxSetUserStatus.action?userid='+userid;
changeStatus(url);
}
});
}else{
//删除操作
$.messager.confirm('删除提示', '你确定永久删除下列用户吗?<br/>'+cods.join(','), function(r){
if (r){
var url = root+'/useropr/userOpr!delNews.action?userid='+userid;
changeStatus(url);
}
});
}
}//end of if
}
这个是我的源码,我已经加了acceptChanges呀,还是不行呀。
acceptChanges方法的作用看API就明白了