Asp.Net中的脚本回调和Server.Transfer页面传值

原创 2005年05月27日 18:36:00

在Asp.Net中经常要用到脚本回调和页面间的传值,下面是关于ScriptCallBack和Server.Transfer简单的示例代码

WebForm1.aspx
给Head中增加__doPostBack脚本,如果页面含有HyperLink等按钮控件,该脚本和2个隐藏控件"__EVENTTARGET"和"__EVENTARGUMENT"由FrameWork自动生成,若没有需要手动添加

<SCRIPT language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
        theform = document.forms["Form1"];//注意此处的FormID
        } else {
        theform = document.Form1;//还有此处
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
}
// -->
</SCRIPT>

<form id="Form1" method="post" runat="server">
<INPUT type="hidden" name="__EVENTTARGET" >
<INPUT type="hidden" name="__EVENTARGUMENT" >
<A href="javascript:__doPostBack('ScriptCallBack','ScriptCallBack')">ScriptCallBack</A>
<ASP:TEXTBOX id="TextBox1" style="Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 152px" runat="server">sometext</ASP:TEXTBOX>

C#
WebForm1.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
    if (IsPostBack)
        if (Request.Form["__EVENTARGUMENT"]== "ScriptCallBack")
            Server.Transfer("WebForm2.aspx", true);//第二个参数指示是否保留页面的Form和QuerryString的值
}

WebForm2.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
    if(this.Context.Handler != sender)
        Response.Write(Request.Form["TextBox1"]);
}

VB.NET
WebForm1.aspx.vb
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If IsPostBack Then
        If Request.Form("__EVENTARGUMENT") = "ScriptCallBack" Then
            Server.Transfer("WebForm2.aspx", True)'第二个参数指示是否保留页面的Form和QuerryString的值
        End If
    End If
End Sub

WebForm2.aspx.vb
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Me.Context.Handler Is sender Then
        Response.Write(Request.Form("TextBox1"))
    End If
End Sub

Asp.Net中的脚本回调和Server.Transfer页面传值

在Asp.Net中经常要用到脚本回调和页面间的传值,下面是关于ScriptCallBack和Server.Transfer简单的示例代码WebForm1.aspx给Head中增加__doPostBac...
  • jelink
  • jelink
  • 2006年09月29日 14:55
  • 614

Asp.Net中的脚本回调和Server.Transfer页面传值http://www.zhuye123.com/Article/156/161/2006/2006042328785.html

在Asp.Net中经常要用到脚本回调和页面间的传值,下面是关于ScriptCallBack和Server.Transfer简单的示例代码WebForm1.aspx给Head中增加__doPostBac...
  • cuoguo1111
  • cuoguo1111
  • 2007年07月05日 13:35
  • 781

ASP.NET页面传值之Server.Transfer

http://blog.csdn.net/bdstjk 说起来有点惭愧,做了这么久的.NET,今天才真正搞明白Server.Transfer 先来看看代码: B.aspx pu...
  • bdstjk
  • bdstjk
  • 2012年05月11日 11:20
  • 5598

asp.net Server.Transfer 打开新页面,新页面可以使用Request.Form取值

在页面A点击按钮打开多个页面B,B页面可以使用Request.Form取值 A页面代码 后台代码 protected void btnSubmit_Click(object ...
  • yingying0708
  • yingying0708
  • 2015年05月10日 11:38
  • 507

Server.Transfer 方法如何传递复杂的参数

在有些情况下,我们用 Sever.Transfer方法转到另一个页面, 有些复杂的参数,如XML串等参数可以采用Context.Item[]的方法进行传递范例代码:        Context.It...
  • cancan28
  • cancan28
  • 2007年10月31日 10:17
  • 560

C# asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别

Response.Redirect 简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面。你可以使用下面的代码将用户引导到另一个页面:   Response.Redirect("WebForm2...
  • qq61394323
  • qq61394323
  • 2015年01月05日 16:37
  • 999

asp.net页面间传值的五种方法

一、QueryString传值:简单、安全性低 二、Server.Transfer传值:(Page1)Context.handler 三、Cookie传值:客户端 四、Session传值:单用户 五、...
  • jcx5083761
  • jcx5083761
  • 2013年07月16日 02:28
  • 1541

Server.Transfer 页面传值.

一、目前在ASP.NET中页面传值共有这么几种方式:  1、表单提交,                                 ....        form1.submit...
  • ybb350680013
  • ybb350680013
  • 2015年06月27日 20:45
  • 270

asp.net页面跳转传值的几种方式

protected void Button1_Click(object sender, EventArgs e) { //使用querystring传值 ...
  • zzzzzzzert
  • zzzzzzzert
  • 2013年01月09日 16:12
  • 17684

ASP.NET 页面之间传值的几种方式

ASP.NET 页面之间传值的几种方式 开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点。其实,对大部分高手来说,未必不是难点。 回想2016年面试...
  • lenovouser
  • lenovouser
  • 2017年01月18日 08:12
  • 1224
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Asp.Net中的脚本回调和Server.Transfer页面传值
举报原因:
原因补充:

(最多只允许输入30个字)