これに関連する他の投稿を 2 つ見たことがありますが、コードに関連する疑問があります。どうぞよろしくお願いします。
テキストボアとドロップダウンリスト、およびいくつかのカスタムバリデータを持つユーザーコントロールがあります。ユーザー コントロールは、コードによって動的に追加されます。
ユーザーコントロール自体の中にドロップダウンリストをロードするために、次のコードを使用しています
protected void Page_Load(object sender, EventArgs e)
{
ddl_RRC.DataSource = dicRC_Desc;
ddl_RRC.DataTextField = "value";
ddl_RRC.DataValueField = "key";
ddl_RRC.DataBind();
txtRC.Text = Request.Form[txtRC.UniqueID]; //To retain the value of text box
}
Page_Init でユーザー コントロールを動的に追加しています
protected void Page_Init(object sender, EventArgs e)
{
if (GetPostBackControl(this) == "btnNewRow")
{
custControlCountID++;
}
for (int i = 0; i < custControlCountID; i++)
{
RejRow customControl = (RejRow)LoadControl("~/RejRow.ascx");
customControl.ID = "rejRow" + i;
divHolder.Controls.Add(customControl);
}
}
Viewstate は、テキスト ボックスとドロップダウン リストの両方で有効になっています。Page_Init にコントロールを追加する際に同じ ID を使用しているため、コントロールがビューステートから値を取得しないのはなぜですか?