動的に作成されるテキストボックスがいくつかあります -
int i = 1;
while (reader.Read())
{
System.Web.UI.WebControls.TextBox textBox = new System.Web.UI.WebControls.TextBox();
textBox.ID = reader["field_id"].ToString();
textBox.Enabled = false;
HtmlGenericControl div = new HtmlGenericControl("div");
if(i%2 != 0)
div.Attributes.Add("style", "margin-right:120px;padding-bottom:20px;");
if (i % 2 == 0)
div.Attributes.Add("style", "padding-bottom:20px;");
div.Attributes.Add("class", "inline fourcol");
div.InnerHtml = "<label>" + reader["field"] + "</label>";
div.Controls.Add(textBox);
panelId.Controls.Add(div);
textBox.Text = reader["field_value"].ToString();
++i;
}
それはうまくいきます(少なくとも私は確信しています-彼らはどうあるべきかを示します)。しかし、それらをループして有効にするか、値を取得しようとすると、「型 'System.Web.UI.LiteralControl' のオブジェクトを型 'System.Web.UI.WebControls.TextBox' にキャストできません。 " エラー。
これは私がそれをやろうとしてきた方法です -
public void EditPanel(System.Web.UI.WebControls.Panel panel)
{
foreach (System.Web.UI.WebControls.TextBox t in panel.Controls)
{
t.Enabled = true;
}
}
ありがとう!