0

我有一个带有文本框和按钮的页面。我在这个按钮上设置了一个 postbackurl 并在目标页面的加载事件上写了以下代码:

if (PreviousPage != null)
        {
            string name = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;

            Response.Write(name);
        }

在使用调试器时,我发现我收到以下错误:

Object reference not set to an instance of an object. 

我无法弄清楚问题出在哪里,因为当我将鼠标悬停在 PreviousPage 上时,我可以看到第一页名称,当我看到 TextBox1 的值时,它显示{System.Web.UI.WebControls.TextBox}的不是我输入的值!

4

3 回答 3

0

设置 时PostBackUrl,您实际上是在将表单发布到目标页面。这意味着您应该能够使用以下方式访问该值Request.Form

string value = Request.Form["MyTextBoxValue"].ToString();

如果 form 方法是GET,您应该能够通过QueryString.

编辑

如果您只是需要将表单提交到另一个页面,您还可以考虑将表单更改action为指向目标页面。然后,您将能够使用该Request对象访问这些值。

于 2012-05-29T14:55:43.740 回答
0

我现在能够获得文本框的值。当使用带有母版页的 aspx 页面时,我们需要先获取 contentplaceholder 的引用,然后使用该引用来获取文本框的引用。

ContentPlaceHolder Content1 =(ContentPlaceHolder)PreviousPage.Master.FindControl("MainContent");
            TextBox SourceTextBox =
    (TextBox)Content1.FindControl("TextBox1");
       Response.Write(SourceTextBox.Text);

这将打印 textbox.text 的值。

于 2012-05-29T15:29:42.590 回答
0

您没有使用代码获取文本框的值的原因是因为您没有在 .Text 之后使用 .ToString()。它需要是:

if (PreviousPage != null)
    {
        string name = ((TextBox)PreviousPage.FindControl("TextBox1")).Text.ToString();

        Response.Write(name);
    }

试试看它是否有效!

于 2013-04-15T15:37:15.883 回答