关于jConfirm回传的解决方案

jQuery Alert Dialogs (Alert, Confirm, & Prompt Replacements)(翻译)发布后,受到大家的很多鼓励,在这里先感谢大家。

在昨天lastwinter留言关于jConfirm的问题,如下

我趁今天有空就考虑了下。我觉得lastwinter问这个问题应该是关于ASP.NET的回传问题,这主要是jConfirm这个为CallBack回调,

他是异步的,并非同步。

所以我尝试了下阻止事件的冒泡,并当选择为true是自动回传。用LinkButton测试(Button不同于这个解决的方案在后面解释)

现贴出LinkButton的CODE DEMO:

关于jConfirm回传DEMO

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
<html xmlns="http://www.w3.org/1999/xhtml"
<head runat="server"> 
    <title></title>

    <script src="Script/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script src="Script/jquery.alerts-1.1/jquery.alerts.js" type="text/javascript"></script>

    <link href="Script/jquery.alerts-1.1/jquery.alerts.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:LinkButton ID="LinkButton1" runat="server" onclick="Button1_Click" >LinkButton</asp:LinkButton> 
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
    
    <div> 
    </div> 
    </form>

    <script type="text/javascript"> 
        $(document).ready(function() { 
            $("#<%=LinkButton1.ClientID %>").click(function(event) {

            jConfirm("test", "test jconfirm", function(r) { 
            if (r) { 
                    <%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %> 
                    } 
                }); 
                event.stopPropagation(); 
                event.preventDefault();

            });

        }); 
    </script>

</body> 
</html>

 

LinkButton1 Button Click CODE

protected void Button1_Click(object sender, EventArgs e) 
   { 
       this.Label1.Text = DateTime.Now.ToString(); 
   }

主要为先阻止事件的冒泡event.stopPropagation();event.preventDefault(); 在jConfirm的callback回调函数中判断是否需要回传,

<%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %>;;

点击LinkButton1是效果为:

点击Cancel时候就不会回传,当ok时候就会发生回传更新时间:

对于我们的LinkButton的实现是在输出的客户端Html代码有脚本自动回传,而Button这是HTML元素submit,提交,

所以在这两个的区别下,LinkButton就多了几处javascript 代码:

<script type="text/javascript">

//<![CDATA[

var theForm = document.forms['form1'];

if (!theForm) {

theForm = document.form1;

}

function __doPostBack(eventTarget, eventArgument) {

if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

theForm.__EVENTTARGET.value = eventTarget;

theForm.__EVENTARGUMENT.value = eventArgument;

theForm.submit();

}

}

//]]>

</script>

和 input Hidden

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />

<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />

上面所说的意思就是如果要用Button实现同样的示例,我们必须保证我的输出客户端的代码有这些回传脚本注册,还有就是回传为

<%=Page.ClientScript.GetPostBackEventReference(Button1,"") %>。所以我觉得用LinkButton更适合。

作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/ 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客博客园--破狼51CTO--破狼。http://www.cnblogs.com/whitewolf/archive/2010/06/09/1754727.html

时间: 2016-05-23

关于jConfirm回传的解决方案的相关文章

基于jQuery的弹出警告对话框美化插件(警告,确认和提示)_jquery

前不久在官方网站是看见这个插件,所以今天趁有空就看了一下,随便给大家共享一下.也许你早已知道了 ,如果是这样那请跳过,不要拍砖. 这个Jquery插件的目的是替代JavaScript的标准函数alert(),confirm(),和 prompt().这个插件有 如下这些特点: 1:这个插件可以使你可以支持你自己的css制定.使你的网站看起来更专业. 2:允许你自定义对话框的标题. 3:在IE7中,可以使你避免使用JavaScript 的prompt()函数带来的页面重新加载. 4:这些方法都模拟

h5跳转回activity-H5跳转回activity,怎么获取 它的点击事件啊

问题描述 H5跳转回activity,怎么获取 它的点击事件啊 android里面嵌入一个纯h5,要点击h5左上叫 一个按钮 返回activity界面,怎么求哥哥姐姐 给个建议,能给一段代码最好? 谢谢啦! 解决方案 android Activity 跳转回传数据 解决方案二: android Activity 跳转回传数据

众人拾柴火焰高,5G承载将逐步进入成熟期

2020年5G商用已成业界共识,中国将是全球最早开始5G商用的国家之一.目前,从标准.技术到组网.原型机,整个产业链都为5G商用做好了准备. 5G 网络在带宽.时延.连接数等方面为用户提供了前所未有的体验,相对4G的单一场景,5G支持eMBB/mMTC/uRLLC等多样化场景,且不同场景的关键指标差异巨大,因此传统承载网络面临着架构变革.设备升级.性能跃升等挑战.如何建设高效.成本最优的承载网以满足5G时代要求,已成为业界关注焦点. 目前各大厂商都对5G承载高度关注,也投入了巨大的研发资源,例如

.net中将text放到frame中记忆功能失效!

问题描述 我现在在做一个基于BS的OA系统,将text放到frame中记忆功能失效.有什么办法能让记忆功能有效. 解决方案 解决方案二:因为所谓的记忆是将内容放入ViewState了,而回传时,iframe里的网页没有回传吧解决方案三:有什么好的方法解决吗?谢谢解决方案四:JS找出来放到隐藏域中?手动放入ViewState?敏感数据放入Session?放入地址栏?放入Cookie?...解决方案五:能告诉我具体的操作方法吗?谢谢

请教一个updatepanel的问题

问题描述 有2个updatepanel控件,分别记做UP1和UP2UP1和UP2中都是用户控件,分别记做UC1和UC2问题是:UC2中一个事件怎么触发UC1的事件呢?请大家帮忙赐教 解决方案 解决方案二:你可以用this.Parent.FindControl找到你要触发的控件,也可以用脚本模拟回传触发解决方案三:假设有2个按钮,A在UC1,B在UC2,,你点击了UC2的按钮,可以用脚本模仿一个点击UC1的按钮的事件,documnet.getElementByID("<%=Button1.C

5G商用承载先行:三大系统设备厂商争奇斗艳

在刚刚结束的MWC上,5G无疑成为展会中最为抢眼的亮点,同时5G也是各大厂商展示的重中之重.从标准技术到组网.原型机等整个产业链已经为5G商用做好了准备. 但作为面向全连接的技术,5G需要的不仅仅是无线侧更高的带宽.更大的容量.更低的延时,5G更加需要全新的承载模式来满足越来越敏感的业务需求. 承载5G商用的前奏 随着5G商用脚步的临近,5G早已不是停留在标准制定的水中月.镜中花,运营商.设备商都在努力推动5G早日商用. 但随着5G商用日益临近,5G承载成为了业界关注的焦点.由于5G需要解决的不

Wi-Fi能否用于无线语音回传

由于运营商正面临着对移动数据近乎疯狂的需求,因此,至少有四个不同的领域可能会出现数据拥堵问题,包括: ·无线接入网; ·网络信令与控制部分; ·分组核心网络; ·回传网络. 每种瓶颈都是对运营商提出的特殊挑战,一般可以通过以下三种方法中的一种来解决: 1.增加受影响网络资源的容量; 2.分流网络资源以缓解拥堵情况; 3.同时采取以上两种方法. 人们普遍认为,过渡到更小的蜂窝网以扩大现有的宏网络是一种潜在的"万能药",可以解决无线接入网络拥堵等问题.但与此同时,这又会催生一个新的问题,那

ASP.NET页面事件:顺序与回传详解

asp.net|详解|页面 一.初始化 ·当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时候因为页面还没有被完全初始化所以多少会有些限制.特别地,您需要使用HttpContext对象.当前可以使用的对象包括QueryString, Form以及Cookies集合,还有Cache对象.注意:在构造函数里是不允许使用Session的. ·下一个将执行的方法是AddParsedSubObject方法,这个方法将添加所有独立的控件并把页面组成一个控件集合树

双向卫星解决方案

SkyBlasterTM 交互式卫星通信系统是目前世界上技术最先进的VSAT系统之一,它具有将宽带视频和数据信息直接提供到局域网或桌面办公系统的能力.其最大特点在于远端小站是由一台微机充当的,起接收和发射作用的是由安装在微机主板上的接收卡和发射卡完成的.将数字视频广播与Gilat公司独特的回传访问方式相结合,用户就可以利用微机享受到公司内部局域网或桌面电脑的内交互式通讯的优点.SkyBlasterTM 为宽带通信提供了一个优越的.基于IP的解决方案,包括商务电视,公司培训,数据推送和Intern