0

ラジオボタンリストのリストをページに動的に追加し、ボタンをクリックすると値を保存します。しかし、ページ上でコントロールを見つけることができません。以下のサンプルコードを見つけてください。

for(int i=1;i<10;i++)
{

 Table tblStars = new Table();    
 RadioButtonList rb = new RadioButtonList();    
 rb.ID = i.ToString();

----
TableCell tc=new TableCell();    
TableRow tr=new TableRow();    
tc.Controls.Add(rb);    
tr.cells.Add(tc);

tblStars.Rows.Add(tr);    
ContentPlaceHolder.Controls.Add(tblStars);

}

ボタンクリックイベントで、

protected void btnPost_Click(object sender, EventArgs e)

 {    
    for(int i=1;i<10;i++)    
    {    
       RadioButtonList rb = (RadioButtonList)this.Page.FindControl(i.ToString());    
    }
}

ここでは、コントロールを見つけることができません。FindControlはnullを返しています。

ここで何かが足りませんか?

ありがとうございました

4

2 に答える 2

0

ボタンをクリックすると、おそらくコントロールが表示されません。クリックするたびにポストバックが実行され、Page_Loadイベントが実行されます。おそらくそこで情報を初期化していて、テーブルのコントロールがリセットされています。Page_Loadイベントでコントロールを再度ロードしてみてください。また、ビューステートを有効にして試して使用することもできます。

于 2012-09-26T16:47:15.807 に答える
0

RadioBuoon List を動的に作成しているため、POSTBACK のたびにそれらを作成する必要があり ます。

あなたはそれをやっていますか?

またthis.Page.FindControl 、期待しているセルを具体的にターゲットにする必要はありません..

于 2012-09-26T16:44:21.553 に答える