主页 > 知识库 > ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享

ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享

热门标签:浙江外呼系统怎么安装 厦门商铺地图标注 上海杨浦怎么申请申请400电话 海外地图标注门市标 地图标注多个行程 云南外呼电销机器人系统 山西防封卡电销卡套餐 陕西人工外呼系统哪家好 铜川小型外呼系统运营商
首先看下面的代码片段,我们希望用户在点击页面上的Button时首先将数据提交到指定的第三方页面,然后再执行后台的Page_Load事件。
复制代码 代码如下:

body>
iframe id="WebGatewaySubmissionProcessor_IFrame" name="WebGatewaySubmissionProcessor_IFrame" style="display: none;">/iframe>
form onsubmit="javascript:if (typeof WebGatewayDoubleSubmission != 'undefined') {WebGatewayDoubleSubmission(this);}" id="Form1" runat="server">
div id="page">
asp:Button ID="BtnClientSend" runat="server" />
/div>
script type="text/javascript" id="WebGatewayScript">
WebGatewayDoubleSubmission = function(o) {
var oldAction = o.action;
var oldOnSubmit = o.onsubmit;
var oldTarget = o.target;
var oldMethod = o.method;
var iframeSubmisionTarget = document.getElementById("WebGatewaySubmissionProcessor_IFrame");
var submitPostIframeSubmission = function() {
o.action = oldAction;
o.target = oldTarget;
o.method = oldMethod;
o.onsubmit = oldOnSubmit;
o.submit();
};
/*iframeSubmisionTarget.onload = submitPostIframeSubmission;*/
eventPush(iframeSubmisionTarget, 'load', submitPostIframeSubmission);
o.action = "http://webgateway.hostedmscrm.com/V2/formprocessor.aspx";
o.target = "WebGatewaySubmissionProcessor_IFrame";
o.onsubmit = null;
o.method = "POST";
o.submit();
};
WebGatewaySubmission = function(o) {
o.action = "http://webgateway.hostedmscrm.com/V2/formprocessor.aspx";
o.method = "POST";
};
function eventPush(obj, event, handler) {
if (obj.addEventListener) {
obj.addEventListener(event, handler, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + event, handler);
}
}
/script>
/form>
/body>

Form中的onsubmit事件在页面被提交时触发,此时首先执行WebGatewayDoubleSubmission脚本方法,在该方法中,将当前Form的action,onsubmit,target,method缓存到指定的变量中,然后将Form的action和target指向另一个页面进行提交,此时页面上的数据被Post到第三方页面。然后再使用页面上隐藏的IFrame来调用submitPostIframeSubmission方法,并将原先的Form进行提交。这里有一个问题,在上面的代码中有一行被注释掉了,原因就是直接使用IFrame的onload方法并不能触发该事件,从而导致submitPostIframeSubmission方法不能执行,页面的第二次提交不成功!使用eventPush方法可以有效地解决该问题。
同时,在服务端的Page_Load事件中,需要使用IsPostBack来判断页面是否被提交了:
复制代码 代码如下:

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
//TODO:
}
}

相关资料:
http://www.4ucode.com/Study/Topic/1087401 
http://wiki.operamasks.org/pages/viewpage.action?pageId=1835020 

您可能感兴趣的文章:
  • asp.net中MVC借助Iframe实现无刷新上传文件实例
  • asp.net在iframe中弹出信息并执行跳转问题探讨
  • asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
  • ASP.NET中使用IFRAME建立类Modal窗口
  • asp.net省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
  • asp.net 学习之路 项目整体框架简单的搭建
  • asp.net GridView中超链接的使用(带参数)
  • ASP.NET 链接 Access 数据库路径问题最终解决方案
  • asp.net实现生成静态页并添加链接的方法
  • ASP.NET中iframe框架点击左边页面链接 右边显示链接页面内容

标签:西双版纳 孝感 自贡 信阳 莱芜 朔州 常州 许昌

巨人网络通讯声明:本文标题《ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享》,本文关键词  ASP.NET,页面,借助,IFrame,提交,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享》相关的同类信息!
  • 本页收集关于ASP.NET页面借助IFrame提交表单数据所遇到问题的解决方法分享的相关信息资讯供网民参考!
  • 推荐文章