GridViewの外部にDropDownListがあり、GridViewのItemTemplate内にDropDownListがあります。外部にあるDropDownListにはSelectedIndex_Changedイベントがあり、それが発生すると、GridView内にDropDownListを設定する必要があります。問題は、内部のDropDownListにデータを入力するために使用するメソッドで、コントロールが見つからないことです。外部のDropDownListが変更されたときに呼び出されるサンプルコードは次のとおりです。
//Does not find ddlRoom
DropDownList ddlRoom = (DropDownList)gv.TemplateControl.FindControl("ddlRoom");
if (rows.Count() > 0)
{
var rooms = rows.CopyToDataTable();
ddlRoom.Items.Clear();
ddlRoom.Items.Add(new ListItem("Select...", "-1"));
ddlRoom.DataSource = rooms;
ddlRoom.DataBind();
}
私も試しました:
DropDownList ddlRoom = (DropDownList)gv.FindControl("ddlRoom");