[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的东西不太了解。
Global site tag (gtag.js) - Google Analytics