Reputation: 1262
below is the markup and codebehind. I am trying to access dropdownlist in the markup from codebehind.
<asp:Repeater runat="server" ID="cataloguesRepeater">
<FooterTemplate>
<table>
<tbody>
<tr>
<td>
<asp:DropDownList runat="server" ID="dropDownList1" />
</td>
</tr>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater>
Codebehind
private void CatalogueItemCommand(object sender, RepeaterCommandEventArgs e)
{
DropDownList dd1 =(DropDownList)e.Item.FindControl("dropDownList1");
}
I always get dd1 as null for some reason. How can access this dropdownlist dd1?
Upvotes: 1
Views: 378
Reputation: 8168
You have to react on the ItemCreated Event:
protected void Page_Load(object sender, EventArgs e)
{
cataloguesRepeater.ItemCreated += cataloguesRepeater_ItemCreated;
cataloguesRepeater.DataSource = new [] { new { title = "item1"}, new { title = "item2" } };
cataloguesRepeater.DataBind();
}
void cataloguesRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
var ddl = e.Item.FindControl("dropDownList1");
}
}
Upvotes: 1