2014-09-22 37 views
1

下面是标记和代码隐藏。 我想从代码隐藏中访问标记中的下拉列表。访问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> 

代码隐藏

private void CatalogueItemCommand(object sender, RepeaterCommandEventArgs e) 
{ 
    DropDownList dd1 =(DropDownList)e.Item.FindControl("dropDownList1"); 
} 

我总是得到DD1为空的某些原因。如何访问此dropdownlist 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 2014-09-23 11:33:48