我有一个页面,然后点击那里的按钮,它将打开一个包含一些文本框的新页面,用户填写所有文本框,然后再次点击按钮,第一页再次打开,问题是:我怎样才能获得这些文件使用服务器端和客户端
在当前页面上的文本框使用以下限制: - 交叉分页 - 饼干 - 会议 - 查询字符串
答案 0 :(得分:0)
如果您正在使用提交页面上按钮的PostBackUrl属性,则可以使用以下操作从操作页面访问“上一页”的控件:
Dim txtBox as TextBox
txtBox = CType(Page.PreviousPage.FindControl("MyTextBox"), TextBox)
然后,您将以编程方式访问该控件的所有属性和数据。
答案 1 :(得分:0)
如果您无法使用cache
,Session
,Querystring
和跨页发布,请使用Cookies
。
答案 2 :(得分:0)
如果它是简单/原始数据,那么你可以去ViewState
。或者Cache
是更好的选择。
还有一个选择是使用页面级公共变量,设置所需的值并重定向到页面以进行进一步处理。(这不是一个好的方法)
答案 3 :(得分:0)
服务器端方法:
另一种方法是使用Server.Transfer
方法。
在当前页面上:
protected void Transfer_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Server.Transfer("destination.aspx");
}
}
在目标网页上:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox textBox = PreviousPage.FindControl("Parameter")
as TextBox;
if (textBox != null)
{
string parameter = textBox.Text;
Parameter.Text = parameter;
}
}
}
但是Server.Transfer
确实有缺点。最严重的是浏览器中的URL不会更改。浏览器仍然认为它已回发并收到第一个Web表单的内容,因此历史记录和书籍标记受到影响。
客户端方法:
在现实世界中,我不建议使用此解决方案,这只是一种解决方法。
用两个词来说:在客户端使用window.name
属性。此属性可在页面重新加载时使用,它是一种会话。
有关详细信息,请参阅:
希望,这有帮助。