Asp.net中使用 Jqueryeasyui的 Confirm dodo

JQuery-EasyUI 提供了较为精简地封装。让我们能更便捷地实现WEB UI。

对于Confirm 方法,在其 Sample 中,是如下描述的:

function confirm1(){

    $.messager.confirm('My Title', 'Are you confirm this?', function(r){
        if (r){
            alert('confirmed:'+r);
            location.href = 'http://www.google.com';
        }
    });
}

对于Asp.Net 服务端控件,如 LinkButton,若需要加入确认框时,我们时常使用

OnClientClick="return confirm('确定删除?');"

但是,如果我们期望UI的统一,我们想用jQuery-EasyUI 的 Confirm,却不能单纯地如下封装

        function Confirm(msg) {
            $.messager.confirm('确认', msg, function(r) {
                return r;
            });            
        }

然后,如此调用:

OnClientClick="return Confirm('确定删除?');" //注意大小写,此Confirm 非 彼 confirm

我们知道 LinkButton 真正在触发业务的是 用 href 属性中的 javascript 执行

<a plain="true" icon="icon-remove" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$gv$ctl08$LinkButton1','')" onclick="return Confirm('通过吗?');" class="easyui-linkbutton" id="ctl00_ContentPlaceHolder1_gv_ctl08_LinkButton1">删</a>

所以,我们需要改变思路,做如下封装。

//确认框,用于 asp.net 服务端控件

        function Confirm(msg, control) {
            $.messager.confirm('确认', msg, function(r) {
                if (r) {
                    eval(control.toString().slice(11));//截掉 javascript: 并执行
                }
            });
            return false;            

        }

调用时使用 return Confirm('确认吗?', this);

原文地址:https://www.cnblogs.com/zgqys1980/p/2203378.html