Hejsan! I vilket steg (PageInit / PageLoad, Event) lägger du till dropdownlistorna? Problem med FindControl
Jag har ett mycket besvärande problem med min GridView. Jag har en TemplateField som ser ut enligt nedan, och i code-behind adderar jag sedan X antal dropDownLists.
<asp:TemplateField HeaderText="Select">
<ItemTemplate></ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="240px" />
<HeaderTemplate>Subphase responsible</HeaderTemplate>
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
for (int i = 0; i < subPhaseCollection.Count; i++)
{
SubPhase sub = (SubPhase)subPhaseCollection[i];
e.Row.Cells[3].Controls.AddAt(i, AddDdl((i+1), sub.Pid, userCollection));
}
private DropDownList AddDdl(int counter, int subPhasePid, List<User> users)
{
DropDownList ddl = new DropDownList();
ddl.ID = "ddlSubPhase_" + subPhasePid;
foreach (User user in users)
{
ddl.Items.Add(new ListItem("(Subphase " + counter + ") " + user.Username, user.Pid.ToString()));
ddl.Width = 220;
ddl.CssClass = "ddlTest";
}
return ddl;
}
När man sedan klickar på spara knappen kommer en mängd saker att hända och allt funkar UTOM att jag inte kan finna de dynamiskt skapade ddl:erna. Hur jag än gör får jag inte rätt på dem. Ett av mina försök ser ut så här:
int subPhasePid = int.Parse(chb.Value);
string ddlId = "ddlSubPhase_" + subPhasePid;
DropDownList ddl = (DropDownList)row.Cells[3].FindControl(ddlId);
Att det är cell[3] är jag övertygad om och namnet (ddlId) stämmer också då jag kolla på html:n som genereras.
Vad gör jag för fel??
Snäll någon som har något tips!?
// NickeSv: Problem med FindControl