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

テキストボックスの値を取得できるようになりました。マスター ページで 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 に答える