2012-06-08 24 views
2

我有一個DropDownList的GridView外,我有一個DropDownList內的GridView的ItemTemplate。外面的DropDownList有一個SelectedIndex_Changed事件,當它觸發時,它應該在GridView中填充DropDownList。問題是,在我使用填充內DropDownList的方法,它無法找到控制:這是調用的時候,外面的DropDownList改變示例代碼:如何在沒有RowDataBound的GridView ItemTemplate中查找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"); 

回答

3

您需要爲每一行綁定下拉菜單。嘗試像這樣

DropDownList ddlRoom = null; 
foreach(var gridRow in gv.Rows) 
{ 
    ddlRoom = gridRow.FindControl("ddlRoom") as DropDownList; 
    if (ddlRoom != null) 
    { 
     //your code here 
    } 
} 
+0

這工作。謝謝。儘管如此,我真的希望避免使用這種方式。 – Xaisoft

相關問題