[ECSide] ecside使用属性tableId后,“正在提交”永不消失
zghorse
2008-04-09
在使用ECSIDE的过程中,出现这样一个问题:当设置<ec:table ....
tableId="test">后,进行数据操作,数据都能正确反映到数据库中。但就是JSP页面上显示的“正在提交”不消失。 如果取消tableId设置,提示即可正常消失。请问是什么原因?该如何解决?谢谢各位! |
|
zghorse
2008-04-10
Me.updateCallBack=function(responseObj){
var rs=ECSideUtil.responseHandler(responseObj); // var tableId=ECSideUtil.trimString(rs[0]);//注释此行 var tableId=Me.id;//添加此行 var ecsideObj=ECSideUtil.getGridObj(tableId); for (var i=1;i<rs.length ;i+=3 ){ var resultCode=ECSideUtil.trimString(rs[i]+""); if (resultCode=="END OF org.ecside.defaultAjaxResopnse"){ break; } var recordKey=ECSideUtil.trimString(rs[i+1]+""); var message=ECSideUtil.trimString(rs[i+2]+""); if (resultCode=="1" || resultCode=="Success") { //Success ECSideUtil.getRemoveUpdatedClassRows(ecsideObj.forUpdateRows,recordKey); }else{ //Fail if (message.length>1){ alert(message); } } } ecsideObj.hideWaitingBar(); }; 经过跟踪,发现var tableId=ECSideUtil.trimString(rs[0])取出的值是"ec",但是在JSP上面已经设置了tableId="test"。因此应该是responseObj中的值没有能取到页面设置的值。 经过上面的修改后,设置tableId值会,数据能更新到数据库,并且提示“正在提交”也能正常消失。 问题:responseObj这个里面的内容是在哪个地方打包的,肯请指教一下。非常感谢。实在没有找到啊 |
|
zghorse
2008-04-10
问题找到了,应该调用这个函数,把tableId传到后台。
defaultAjaxResopnse(String ctableId,List parameterMapList,int[] resultCodes,HttpServletRequest request, HttpServletResponse response) 没有找到方法直接从REQUEST中取。用这种方法的话是一个硬编码,使用起来不是很方便。如果哪位大侠知道如何从REQUEST中取tableId,请告之,谢谢。 走了很多弯路,关键还是对ecside的东西不太了解。 |