0

2 つのユーザー コントロールがあり、そのうちの 1 つにテキスト ボックスがあります。同じページに登録されている 2 番目のユーザー コントロールからその値を取得する必要があります。これどうやってするの?次の行が間違っていることは知っていますが、そのようなものだったことを思い出します。

TextBox myText = (TextBox)FindControl["mycontrol"] as TextBox;
4

2 に答える 2

2

最初のコントロールから 2 番目のコントロールの値にアクセスする必要がある場合

var textBox = this.Page.FindControl("SecondUserControl")
                  .FindControl("tbCardNumber") as TextBox;

SecondUserControlはページで指定された ID であり、tbCardNumber2 番目のコントロールの TextBox に指定された ID です。

ページから TextBox にアクセスしようとすると

var textBox = SecondUserControl1.FindControl("SecondUserControl")
                                .FindControl("tbCardNumber") as TextBox;

SecondUserControl1はコントロールの ID であり、分離コードでアクセスできます。

ただし、プロパティを介してテキスト ボックスの値を公開できます。

public string TextBoxValue
{
   get
    {
        return tbCardNumber.Text;
    }
}

ただし、別のユーザー コントロールを介してアクセスする場合は、FindControl メソッドが必要です。

于 2012-04-03T05:00:53.297 に答える
1

キャストが多すぎることを除いて、コードは機能するはずです

TextBox myText = FindControl["mycontrol"] as TextBox;

TextboxControlの基本クラスであるを返すFindControl に関する MSDN ドキュメント、したがって、このキャストは、見つかったコントロールがテキストボックスである限り機能するはずです

于 2012-04-03T04:51:45.597 に答える