我有两个网页表单。例如: a.aspx和b.aspx
在a.aspx中我有一个带ID="Textbox1"
的文本框。
在b.aspx中,我有一个标有ID="Label1"
我希望当我打开 b.aspx ,Label1.text = Textbox1.Text
..
但是当我在 b.aspx Page_Load函数中写字时,intellisense不知道Textbox1
。
我该怎么做?
答案 0 :(得分:3)
当用户请求.aspx时,ASP.NET会创建Page
类(Web表单)的新实例,对其进行处理,然后将生成的HTML发送给用户。最后它会破坏页面实例。
单击ASP.NET页面上的按钮时,您“回发”到同一个URL(即,从a.aspx
返回 a.aspx
)。接下来,ASP.NET执行一些魔术:它将用户输入表单元素的值映射到页面上的控件,如Textbox1
。
要跨页面共享值,您需要使用以下机制之一:
直接发布到网页b
。对于惯用的ASP.NET方式,请参阅跨页面Posting in ASP.NET Web Pages。
将数据包含在网址本身中,例如,使用查询字符串:
http://www.mysite.com/b.aspx?contents=foo
将数据保存在 a session变量(或Cookie)中。除非将值确定为用户会话的范围(例如,设置时区),否则这不是一个好主意。此外,如果可扩展性很重要,您需要更加谨慎地使用会话。
将数据保存在数据库中,然后在构建其他页面时检索它。
答案 1 :(得分:0)
response.redirect("b.aspx?contents=" + Textbox1.text);
然后在b.aspx中,在page_load中,你会这样做:
Label1.text = request("contents");
这就是你问的问题吗?如果你没有在intellisense中看到它,你可能只需要关闭并重新打开页面,以便它与设计器文件同步。
答案 2 :(得分:0)
可以通过多种方式完成。 在这里,我讲的是两种简单易行的方法 1. U可以将值作为参数发送到url中 如果你通过点击一个按钮,链接按钮等去b.aspx。你可以像这样添加它
Response.Redirect("b.aspx?val="+text1.Text);
U can able to get the value by using
String txt=Request.QueryString["val"];
您可以使用会话变量。因此,如果您使用会话变量,则可以从您的网站{aspx}中的任何页面中获取该值。
会话[ “VAL”] = textBox1.Text; //第1页 Label1.Text = Session [“val”]。ToString(); //第2页
希望你试试这个
答案 3 :(得分:-1)
保存会话中的值。这样,用户可以键入大量文本,并且不会使URL看起来很难看。对URL的允许长度也有限制。
使用c#代码如下:
// create a new Session variable to store the users name
Session ( 'SomeText' ) = 'James';
// display the name in any page on your site
Out ( 'Your value is ' + Session ( 'SomeText' ) );
答案 4 :(得分:-1)
您始终可以使用Masterpages,并在母版页上公开公共属性。将此属性写入页面的视图状态,并且由于它是公共的,因此pageA可以写入值,而pageB可以读取该值。