いくつかのチュートリアルとコード例に従おうとしましたが、期待どおりに動作しません。
Web ページに一連のテキスト ボックスがあり、それぞれをループしてその値をデータベースに保存する必要があります。ページ上のテキストボックスの数は異なります。データベースからロードします。それらはすべてテーブル オブジェクトに追加されます。
TableCell cellb = new TableCell();
TextBox txtAnswer = new TextBox();
txtAnswer.TextMode = TextBoxMode.MultiLine;
txtAnswer.Rows = 2;
txtAnswer.ID = "field_" + dataRow["fieldID"].ToString();
txtAnswer.Text = "answer"; //this will be got from the database
cellb.Controls.Add(txtAnswer);
これにより、テーブル行にテキストボックスが追加されます。次に、次のコードを持つ保存ボタンがあります
foreach (Control c in Page.Controls)
{
foreach (Control childc in c.Controls)
{
if (childc is TextBox)
{
TextBox tmpText = (TextBox)childc;
tmpField = tmpText.ID.Split('_');
fieldID = Convert.ToInt32(tmpField[1]);
//save value to the database (eventually)
debug.InnerHtml += tmpText.Text; //this just outputs the values for now
}
}
}
したがって、上記はすべてのページ コントロールをループし、page_load に追加されたテキスト フィールドを見つける必要があります。しかし、それが存在しないからなのか、今は疑問に思っています。そのため、ページを保存すると、コントロールがわかりません。テーブル コントロールは見えますが、中には何もありません。何かアイデアはありますか?!