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

相关文章推荐

C#: server.transfer 在两个ASP.NET页面之间传递值

ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事...

ASP.NET页面之间传值

  • 2015年12月28日 09:14
  • 3KB
  • 下载

ASP.net mvc 架构中在JQuery脚本与Action传值

今天在学习ASP.net MVC架构和JQuery开发WEB应用过程中,想实现在前台(View)的JQuery脚本中将某个界面元素的位置坐标传递到服务器Action 方法中。在网上看了不少高手写的东西...
  • deer
  • deer
  • 2011年02月02日 15:05
  • 641

ASP.NET页面传值汇总.pdf

  • 2012年06月15日 15:52
  • 1.38MB
  • 下载

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

  • 2009年07月14日 10:07
  • 33KB
  • 下载

ASP.NET页面间POST和GET传值

ASP.NET页面间的传值有很多种方式,下面介绍一种最常见的传值方式,就是利用HttpContext传值。 分两种情况: 1、当表单提交的时候(POST) 页面1:userName.aspx ...

ASP.NET跨页面传值技巧

  • 2009年05月06日 17:31
  • 40KB
  • 下载

ASP.NET跨页面传值技巧总结.mht

  • 2009年06月04日 10:14
  • 13KB
  • 下载

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

ASP.NET页面间传值的几种方式 分类: 技术类2009-05-12 11:20 13925人阅读 评论(8) 收藏 举报 asp.netwebformcalendartextb...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Asp.Net中的脚本回调和Server.Transfer页面传值
举报原因:
原因补充:

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