jqGrid 多选提交的问题?

laodan 2013-09-25 05:42:14
用jqGrid做了两个表格(t1,t2),t2的数据根据t1的数据联动,选中t1表格的一行联动刷新t2表格数据.
t1 是多选模式(按住ctrl可以多选),但是在多选的过程中,每选一行会刷新一下t2的数据,现在想实现一个效果:在多选的最后再刷新数据。比如 多选3行,选择第一行和第二行的时候,不刷新数据,只有选择第三行的时候再刷新数据。不考虑右键提交和按钮提交的方式。
...全文
226 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzfei2 2013-09-27
  • 打赏
  • 举报
回复
引用 12 楼 laodan 的回复:
[quote=引用 10 楼 fzfei2 的回复:] [quote=引用 9 楼 laodan 的回复:] 谢谢楼上的回答,可以依然没有解决,我在多选过程中,只在最后一个选择的时候才刷新的问题。假定我选择4行,那么选择1、2、3行的时候不发刷新的请求,只在选择第4行的时候发刷新的请求?
按6#,#8 判断 只要选中了 第3行, 就为 true[/quote] 可能是我没说明白,我现在想实现的是:不确定哪一次选择的行是最后提交的行?[/quote] 那你说的是 #5 showbo 的意思了,用#5 clearTimeout setTimeout 方法 延时提交
laodan 2013-09-27
  • 打赏
  • 举报
回复
引用 10 楼 fzfei2 的回复:
[quote=引用 9 楼 laodan 的回复:] 谢谢楼上的回答,可以依然没有解决,我在多选过程中,只在最后一个选择的时候才刷新的问题。假定我选择4行,那么选择1、2、3行的时候不发刷新的请求,只在选择第4行的时候发刷新的请求?
按6#,#8 判断 只要选中了 第3行, 就为 true[/quote] 可能是我没说明白,我现在想实现的是:不确定哪一次选择的行是最后提交的行?
Go 旅城通票 2013-09-27
  • 打赏
  • 举报
回复
引用 9 楼 laodan 的回复:
谢谢楼上的回答,可以依然没有解决,我在多选过程中,只在最后一个选择的时候才刷新的问题。假定我选择4行,那么选择1、2、3行的时候不发刷新的请求,只在选择第4行的时候发刷新的请求?
已经和你说了,延时发送操作,不过对于你选择的记录间距大的,这个延时时间不好定,只能做按钮,或者尽量放大间隔,如3s后自动发送,如果还要查看更详细信息后才绝对是否勾选,你至少要设置5s
fzfei2 2013-09-27
  • 打赏
  • 举报
回复
引用 9 楼 laodan 的回复:
谢谢楼上的回答,可以依然没有解决,我在多选过程中,只在最后一个选择的时候才刷新的问题。假定我选择4行,那么选择1、2、3行的时候不发刷新的请求,只在选择第4行的时候发刷新的请求?
按6#,#8 判断 只要选中了 第3行, 就为 true
laodan 2013-09-27
  • 打赏
  • 举报
回复
谢谢楼上的回答,可以依然没有解决,我在多选过程中,只在最后一个选择的时候才刷新的问题。假定我选择4行,那么选择1、2、3行的时候不发刷新的请求,只在选择第4行的时候发刷新的请求?
fzfei2 2013-09-27
  • 打赏
  • 举报
回复
用样式判断 if( $('#list13 tr:eq(3)').is('.ui-state-highlight') ){ ..... } 或者 如果是以 checkbox 为判断 if( $('#tb :checkbox:eq(2)').is(':checked') ){ .... }
laodan 2013-09-27
  • 打赏
  • 举报
回复
还有别的思路没?
laodan 2013-09-27
  • 打赏
  • 举报
回复
这真是个难题,唉
fzfei2 2013-09-26
  • 打赏
  • 举报
回复
我还以为你是说至少要3个,改成了选中了第3行提交

var rs=jQuery("#tb").jqGrid('getGridParam','selarrrow');
if( $.inArray("3",s)!=-1){
  //提交
}
Go 旅城通票 2013-09-26
  • 打赏
  • 举报
回复
jqGrid没有这个功能判断你到底要选择多少条,只能靠感觉了。。如1s后延时更新t2的数据

这个间隔不好定,所以最精确的就是做个按钮来提交
var timer;
$('#grid').jqGrid({
//.........
onSelectRow:function(){
clearTimeout(timer);
timer=setTimeout(function(){/*更新t2的代码*/},1000);
}
//.........
});
laodan 2013-09-26
  • 打赏
  • 举报
回复
可是我并不能确定length 是多少呀?可能是3,可能是4
fzfei2 2013-09-25
  • 打赏
  • 举报
回复
看了下AIP有取选中行的方法

var rs=jQuery("#tb").jqGrid('getGridParam','selarrrow');
if(rs.length>2){
 //提交
}
laodan 2013-09-25
  • 打赏
  • 举报
回复
谢谢,楼上,可以解释一下不?
fzfei2 2013-09-25
  • 打赏
  • 举报
回复
if( $("#tb :checkbox:checked").length ){ //提交 }

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧