2014-09-22 3 views
1

ниже - это разметка и код. Я пытаюсь получить доступ к выпадающему списку в разметке из codebehind.Доступ к DropDownlist, размещенному внутри разметки повторителя

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

Я всегда получаю DD1 утратившим по каким-либо причинам. Как получить доступ к этому выпадающему списку dd1?

ответ

1

Вы должны реагировать на ItemCreated Событие:

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"); 
     }    
    } 
+0

Спасибо работает очень хорошо – Sike12

Смежные вопросы