两个页面之间如何传数

gdutmo 2003-10-21 09:02:12
我想问一下,如何实现两个页面之间的传数。我是这样做的请各位指教(VB。NET)
第一个页面:
Public ReadOnly Property page_action() As String
Get
'Return s_page_action
Return "add"

End Get
End Property
然后
Server.Transfer("WebForm2.aspx")

第二个页数应如何写呢,请各位帮忙
...全文
60 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingoxp 2003-10-26
  • 打赏
  • 举报
回复
用session就可以了。
gdutmo 2003-10-26
  • 打赏
  • 举报
回复
请问如何让控件的属性和页面属性同步呢,有具体例子吗?请指教。谢
Abac 2003-10-24
  • 打赏
  • 举报
回复
你让控件的属性和页面属性同步就是了,控件值改变的时候让页面属性页改变。
sjinli 2003-10-22
  • 打赏
  • 举报
回复
使用Server.Transfer
这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
1,在页面里添加必要的控件
2,创建返回值的Get属性过程
3,创建可以返回表单的按钮和链接按钮
4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
//create instance of source web form
WebForm1 wf1;
//get reference to current handler instance
wf1=(WebForm1)Context.Handler;

}
Abac 2003-10-21
  • 打赏
  • 举报
回复
来自MSDN:
在源页上创建可共享的值

在代码中,使用属性的标准语法声明页上的一项或多项只读属性。返回要向下一页传递的属性值。
以下示例显示如何声明名为 Property1 的属性并将它的值设置为该页上文本框的值:

' Visual Basic
Public ReadOnly Property Property1() As String
Get
Return TextBox1.Text
End Get
End Property

// C#
public string Property1
{
get
{
return TextBox1.Text;
}
}
通过调用 Server 对象(HttpServerUtility 类)的 Transfer 方法调用下一页,并向其传递要将信息传递到的页的 URL。
以下示例显示如何从事件处理程序中调用名为 WebForm2 的页(在同一项目中):

' Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Server.Transfer("Webform2.aspx")
End Sub

// C#
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("Webform2.aspx");
}
若要从所调用的页中获取第一页的属性值,请创建源页类的实例变量。然后可以向其分配 HTTP 对象(IHttpHandler 类的一个实例),即接收初始请求的对象。

在所调用的页中读取源页中的属性值

创建一个全局实例变量,它被类型化为源页的类。
以下示例显示如何声明类型为 WebForm1 且名为 sourcepage 的变量:

' Visual Basic
' Put immediately after the Inherits statements
' at the top of the file
Public sourcepage As WebForm1

// C#
// Put immediately after the opening brace of the class
public class WebForm3 : System.Web.UI.Page
{
public WebForm1 sourcepage;
// etc.
在 Page_Load 处理程序中,从 Context.Handler 对象(IHttpHandler 接口)中获取源页,然后向其分配在第 1 步创建的变量。必须将该处理程序对象转换为源页类的类型。
注意 只应在该页首次运行(即首次从源页中调用该页)时执行此逻辑。
从源页中获取属性值,并按照使用任何对象属性的方式来使用这些属性值。
注意 如果要在除第一页初始化阶段之外的任何页处理阶段中使用属性值,则务必要保存这些属性值(例如以视图状态保存)。有关详细信息,请参见 Web 窗体状态管理介绍。
完整的 Page_Load 处理程序可能类似于如下所示:

' Visual Basic
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
sourcepage = CType(Context.Handler, WebForm1)
Label1.Text = sourcepage.Property1
End If
End Sub

// C#
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack){
WebForm1 sourcepage = (WebForm1) Context.Handler;
Label1.Text = sourcepage.Property1;
}
}
gdutmo 2003-10-21
  • 打赏
  • 举报
回复
可以不用SESSION吗?我想用回我提出的方法。
gdutmo 2003-10-21
  • 打赏
  • 举报
回复
可以用SESSION
gdutmo 2003-10-21
  • 打赏
  • 举报
回复
不行啊,如果把属性写在页面就可以传给第二页,但如果是控件的属性就不能被第二个页接收,各位还有别的办法吗?
阿拉丁 2003-10-21
  • 打赏
  • 举报
回复
FormA: Session["myParm"] = "asdf";
FormB: String strParm = (string)Session["myParm"];
gdutmo 2003-10-21
  • 打赏
  • 举报
回复
不好意思说错了,那个page_action属性是webform1中用户控件,这样能在第二个页面调用它的属性吗?
guoyan19811021 2003-10-21
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/article/21/21539.shtm
haoliqi 2003-10-21
  • 打赏
  • 举报
回复
要不用Session传
lincf2000 2003-10-21
  • 打赏
  • 举报
回复
private void Page_Load
(object sender, System.EventArgs e)
{
//创建原始窗体的实例
dim wf1 as WebForm1
//获得实例化的句柄
wf1=Context.Handler
Label1.Text=wf1.page_action
}
crystaltears 2003-10-21
  • 打赏
  • 举报
回复
第一页:传
string str_xh = this.DataGrid2.DataKeys[this.DataGrid2.SelectedIndex].ToString().Trim();
Response.Write("<script>window.open('hydt.aspx?id="+str_xh+"','浦东新区河闸署','menubar=0,scrollbars=1,toolbar=0,location=0,left=250,top=70,screenX=0,screenY=0,width=470,height=450',false)</script>");
第二页:收
string str_bh = Request.Params.Get(0).ToString().Trim();
Abac 2003-10-21
  • 打赏
  • 举报
回复
第二页就是这样写:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
'得到第一页的对象
sourcepage = CType(Context.Handler, WebForm1)
'读取页面的属性
Label1.Text = sourcepage.Property1
End If
End Sub

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧