jqgrid数据不显示 alert就能显示
我用tempJqgridData=$('#editgrid').jqGrid('getGridParam','data');获取了表格的数据,之后处理完之后再用$('#e...
我用
tempJqgridData = $('#editgrid').jqGrid('getGridParam', 'data');
获取了表格的数据,
之后处理完之后再用
$('#editgrid').jqGrid("setGridParam", { data : tempJqgridData }).trigger('reloadGrid');
想把之前的值塞回去,但页面什么都没有。
我以为是中间的操作把tempJqgridData给覆盖了,就在塞值前alert(tempJqgridData)了一下,结果里面有值(和取到的时候alert是一样的结构[object,object]),并且这时候grid的值就重新塞进去了。
请问这是为什么啊?页面不能每次需要重新塞值的时候就alert一下啊 展开
tempJqgridData = $('#editgrid').jqGrid('getGridParam', 'data');
获取了表格的数据,
之后处理完之后再用
$('#editgrid').jqGrid("setGridParam", { data : tempJqgridData }).trigger('reloadGrid');
想把之前的值塞回去,但页面什么都没有。
我以为是中间的操作把tempJqgridData给覆盖了,就在塞值前alert(tempJqgridData)了一下,结果里面有值(和取到的时候alert是一样的结构[object,object]),并且这时候grid的值就重新塞进去了。
请问这是为什么啊?页面不能每次需要重新塞值的时候就alert一下啊 展开
1个回答
展开全部
ajax默认是异步的,就是加了alert以后阻止了setgriadparam,但是不会阻止reload。在你点确认之前,reload可能已经完成(由你服务器端返回的时间决定)。再去执行setgridparam就塞进去了。如果你服务器端返回时间很慢,而你点alter的确认很快,依然只是服务器端的数据。大概知道你要的效果,可以这样
$('#editgrid').jqGrid("setGridParam", { data : tempJqgridData }).trigger('reloadGrid'); 改成
$('#editgrid').clearGridData();
for(var i=0;i<=tempJqgridData.length;i++)
$('#editgrid').jqGrid('addRowData',i+1,tempJqgridData[i]);
不过测试了一下,如果是tree形式的有问题
$('#editgrid').jqGrid("setGridParam", { data : tempJqgridData }).trigger('reloadGrid'); 改成
$('#editgrid').clearGridData();
for(var i=0;i<=tempJqgridData.length;i++)
$('#editgrid').jqGrid('addRowData',i+1,tempJqgridData[i]);
不过测试了一下,如果是tree形式的有问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询