3

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");
4

1 に答える 1

5

各行のドロップダウンをバインドする必要があります。このようなものを試してください

DropDownList ddlRoom = null;
foreach(var gridRow in gv.Rows)
{
    ddlRoom = gridRow.FindControl("ddlRoom") as DropDownList;
    if (ddlRoom != null)
    {
        //your code here
    }
} 
于 2012-06-08T19:24:45.437 に答える