我找到问题原因了,因为我把FarPoint.Web.Spread放在了UpdatePanel 里了,
所以不能直接return false取销回调.
我生成了一个javascript字符串,写到客户端就可以了.正常取销回调了.
jsStr = "function CheckStatus (sender, eventArgs){\n" +
" //alert(eventArgs.get_postBackElement().id);\n" +
" //prompt('',eventArgs.get_postBackElement().id );\n" +
" if (eventArgs.get_postBackElement().id==\"FpSCommandBox\"){\n" +
" if(FpSCommandBox.ActiveCol==4){\n"+
" var prm = Sys.WebForms.PageRequestManager.getInstance();\n"+
" if (confirm(\"将会影响数据库,确认保存吗?\")== false) {\n eventArgs.set_cancel(true);}\n" +
" }\n" +
" }\n" +
"};\n";
javaScriptStr.Append(jsStr);
不过这时候又出一个问题,
msdn上说
" 如果回发正在进行,则可使用 Sys.WebForms.InitializeRequestEventArgs 类的 postBackElement 属性,确定导致回发的元素的 ID。 如果该 ID 与取消回发的按钮的 ID 相匹配,则调用 abortPostBack 方法。 否则,使用 Sys.CancelEventArgs 类的 cancel 属性,取消当前请求。 "
而我取回的是eventArgs.get_postBackElement().id是格表的ID,而不是表格是谋行谋列的按钮的ID.
我现在又用活动列再判断一定,才可以实现.随然可以实现功能,便感觉还有哪有问题了. |