Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

EXT js中的confirm  为异步方法,格式如下:confirm('标题','提示信息',回调方法).

如果服务器控件还是使用 onClientclick调用javaScript中自带的confirm( 即onClientClick="return Ext.MessageBox.confirm('','',null');" )这种方法是行不通的. 它会没等Ext的confirm执行完成就submit提交服务器了.因为 它返回的是object对象,执行完毕调用"回调方法".

解决办法:

情况一:如果只是调用一般的服务端控件如:asp:Button\LinkButton

可以使用HTML控件,如 HyperLink或Button 它们的onclick事件处理方法. 在处理方法中根据Ext的confirm返回值判断是否调用服务器控件的onclick事件.

如下:

 

Code

 

    function confirmSealed(strMSG,strID){
    Ext.MessageBox.confirm(
'提示框',strMSG,onQuery);
    
function onQuery(btn){
    
if(btn == 'yes'){
    document.getElementById(strID).click();}
}

    }

 

情况二:如果服务端控件嵌套在GridView等数据显示控件里面则其ClientID为动态,不能直接指定.需要在GridView的数据绑定事件里进行动态添加.(可也用js在客户端获取)

由超链接执行LinkButton的删除操作,操作之前会进行客户端询问:

以下为前台代码:

 

Code

后台代码如下:

 

Code

 

注意: HTML控件必须设置ID 且需要加runat="server"属性,否则 后台代码找不到该控件. 

posted on 2009-06-01 16:57  Robin99  阅读(468)  评论(0编辑  收藏  举报