1

マスターページから継承されたページ上のすべてのコントロールに対して操作を実行しようとしています。子ページ コントロールにアクセスする方法がわかりません。私は次のように自分のコントロールに再帰的にアクセスしようとしました:

    private void checkControls(ControlCollection controlcollection)
   {

    foreach (Control control in controlcollection)
    {
        if (control.Controls.Count > 0)
        {
            Debug.WriteLine(control.GetType().ToString());
            checkControls(control.Controls);
        }
        else
        {
            Debug.WriteLine(control.GetType().ToString());
        }

    }

メソッドは次のように呼び出されます。

protected void resettodefault()
{
    checkControls(this.Page.Controls);
}

ただし、この実行から出力されるコントロールは次のとおりです。

ASP.site_master

System.Web.UI.LiteralControl

コントロールに (再帰なしで) 直接アクセスしたいと思います。それ以外の場合、再帰を変更して目的のページのコントロールに到達するにはどうすればよいですか?

4

3 に答える 3

0

子ページのコントロールにアクセスするには、次の手順を実行します。

1-アクセスしたい型の変数を宣言します。たとえば、子ページのラベルにアクセスする場合は、次のように使用します。

Label lbl_child=this.ContentPlaceHolder1.findcontrol("your label id in child page") as Label;

これでラベルが作成され、自由に変更できます。このコントロールのすべての変更は、子コントロールに反映されます。

ContentPlaceHolder1 はコンテンツ ホルダー ID であるため、コンテンツ ID に変更します。

于 2013-08-06T17:41:58.343 に答える