Sike12
Sike12

Reputation: 1262

Accessing DropDownlist placed inside repeater markup

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

Answers (1)

Marian Ban
Marian Ban

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

Related Questions