两个页面之间参数传递

wangsaokui 2003-10-18 06:10:41
WebForm1中用控件或超链接打开WebForm2,(WebForm1仍打开,有值需保留)
操作WebForm2后,将值或控件的属性返传回WebForm1,同时关闭WebForm2
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rockrabbit 2003-10-30
  • 打赏
  • 举报
回复
受到启发。
vikingleo 2003-10-28
  • 打赏
  • 举报
回复
MARK
wangsaokui 2003-10-18
  • 打赏
  • 举报
回复
谢谢各位,我已经按webdiyer的方法做出来了,通过问题的处理,感觉asp.net的处理很多情况下都需要调用javascript,如何把这两者结合起来很是麻烦,有时java里很简单的一句,在.net中就不知道如何去做。
SeeSunSet 2003-10-18
  • 打赏
  • 举报
回复
把以下的代码添加到页面中
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}
然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("anotherwebform.aspx");
}
目标页面代码:
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;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}

webdiyer 2003-10-18
  • 打赏
  • 举报
回复
父页面:parent.aspx
---------------------------
<script runat="server" Language="C#">
void Page_Load(object src,EventArgs e){

}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:)(www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
</HEAD>

<BODY>
<form runat="server">
<asp:TextBox runat="server" id="box"/><button onclick="window.open('child.aspx','_blank')">打开子窗口</button>
</form>
</BODY>
</HTML>



子页面:child.aspx
-----------------------------------
<script runat="server" Language="C#">
void Page_Load(object src,EventArgs e){
btn.Attributes.Add("onclick","TransferText();self.close();return false;");
}
</script>
<HTML>
<HEAD>
<TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Webdiyer">
<SCRIPT LANGUAGE="JavaScript">
<!--
function TransferText(){
if(window.opener!=null){
window.opener.document.all.box.value=document.all.box.value;
}
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<form runat="server">
<asp:TextBox runat="server" id="box"/><asp:Button id="btn" runat="server" Text="传值到父页面"/>
</form>
</BODY>
</HTML>
feixiang1234 2003-10-18
  • 打赏
  • 举报
回复
用js来实现:
Response.Write("<a href=\"javascript:opener.document.
Form1.newstype.value='"+这个是你要返回的值+"';javascript:opener.document.Form1.newstype1.value='"+
ds.Tables[0].Rows[i][0].ToString()+"';window.close();\">"+
ds.Tables[0].Rows[i][1].ToString()+"</a></span>");
这是在webform2中的代码,在webform1中定义两个id分别为newstype和newstype1的控件来接收就可就可以了.这个是传两个参数.
wangsaokui 2003-10-18
  • 打赏
  • 举报
回复
问题是数据传回后需立即显示在WebForm1的控件中,照二位的办法,
1、ddangerous169,必须在数据回传后再触发一个事件来实现,我想省掉这个步骤;
2、xiaomaolover,你说的办法必须重新刷新页面,而之前webform1上的数据没有办法保存了;
数据是可以传回来,关键是如何收。
xiaomaolover 2003-10-18
  • 打赏
  • 举报
回复
我是用vb.net写的。。。

可以用session,cookies
还有response.redirect("a.aspx?a='a'")
在a.aspx
里用response.write(request(a))
就行了。。
server.transfer()
也可以和response.redirect("a.aspx?a='a'")一样用/
区别就是。。。。(自己看看吧~~~)


ddangerous169 2003-10-18
  • 打赏
  • 举报
回复
可以这样做:
在webform2.aspx中定义几个函数
public readonly property tb1() as string
get
return textbox1.text
end get
end property
同理可以定义一些别的
然后在page_load中使用
Server.Transfer("webform1.aspx")
这样的话,webform2的东东就可以保存给webform1使用了。
在webform1.aspx中的使用:
Dim wf As webform2= CType(Context.Handler, webform2)
dim str as string= wf.tb1
这样webform1的str就得到了webform2的textbox1的值了
这是用vb.net做的,如果你用C#可以自个转换一下.有问题的话zhyf169@163.com
好运 2003-10-18
  • 打赏
  • 举报
回复
用session
孟子E章 2003-10-18
  • 打赏
  • 举报
回复
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4

62,041

社区成员

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

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

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

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