处理Asp.net中使用 Jquery-easyui的 Confirm
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://files.cnblogs.com/donhwa/EasyUIDemo.rar
中的 Demo/GridView.aspx