如何在客户端访问上一页的值?

时间:2010-04-19 15:42:48

标签: asp.net javascript

我有一个页面,然后点击那里的按钮,它将打开一个包含一些文本框的新页面,用户填写所有文本框,然后再次点击按钮,第一页再次打开,问题是:我怎样才能获得这些文件使用服务器端和客户端

在当前页面上的文本框

使用以下限制: - 交叉分页 - 饼干 - 会议 - 查询字符串

4 个答案:

答案 0 :(得分:0)

如果您正在使用提交页面上按钮的PostBackUrl属性,则可以使用以下操作从操作页面访问“上一页”的控件:

Dim txtBox as TextBox
txtBox = CType(Page.PreviousPage.FindControl("MyTextBox"), TextBox)

然后,您将以编程方式访问该控件的所有属性和数据。

答案 1 :(得分:0)

如果您无法使用cacheSessionQuerystring和跨页发布,请使用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属性。此属性可在页面重新加载时使用,它是一种会话。

有关详细信息,请参阅:

希望,这有帮助。