0

私はこのようなコードを持っています

protected void Button1_Click(object sender, EventArgs e)

{
            Table t = new Table() ;
            t.ID = "T1";
            t.Visible = true;
            MyPanel.Controls.Add(t);
}

protected void Button2_Click(object sender, EventArgs e)

{
            Table t = (Table)MyPanel.FindControl("T1");
}

そこに問題があります:Table t = (Table)MyPanel.FindControl("T1");

変数 t には、null への参照が含まれるようになりました。アプリケーションがコード ビハインドで生成されたテーブルを認識していないようです。テーブルを MyPanel 以外の場所に「登録」する必要がありますか? 回答ありがとうございます。

編集 問題に関する詳細情報

masterPage のない単純なページがあります。数字のある Gridview があります。この数値は、新しいテーブルに含まれる行とセルの数を意味します。ユーザーが行を選択すると、適切なテーブルを作成し、2 番目のボタンをクリックした後、テーブルから情報を収集する必要があります。OnInit または PreRender わからない、必要な行数。私の問題は技術的に不可能ということですか?

4

3 に答える 3

0

あなたのコードを実行します OnPreRender

protected override void OnPreRender(EventArgs e)
    {
            Table t = new Table() ;
            t.ID = "T1";
            t.Visible = true;
            MyPanel.Controls.Add(t);
    }
于 2013-09-16T08:49:52.560 に答える
-3

ctl00$ContentPlaceHolder1$UrunlerRAjax1$rptCustomers

contentplaceholder --> ユーザーコントロール --> リピーター

Repeater rptCustomers = this.Page.Master.FindControl("ContentPlaceHolder1").FindControl("UrunlerRAjax1").FindControl("rptCustomers") as Repeater;

リピーター rptCustomers = this.Page.Master.FindControl("ContentPlaceHolder1").FindControl("UrunlerRAjax1").FindControl("rptCustomers") as Repeater;

リピーター repeaterName = this.Page.Master.FindControl("ContentName").FindControl("UsercontrolName").FindControl("repeaterName") as Repeater;

于 2014-06-04T11:12:08.283 に答える