Asp.net

如何綁定中繼器內部的下拉列表?

  • November 25, 2019

我想綁定中繼器內的下拉列表。我的程式碼是

<asp:Repeater ID="rep_UnAssignComps" runat="server">
   <ItemTemplate><asp:DropDownList ID="drp_CompPropAddress" runat="server">
           </asp:DropDownList></itemTemplate></asp:Repeater>

在您的中繼器ItemDatabound事件中使用以下內容:

if (e.Item.ItemType == ListItemType.Item || 
        e.Item.ItemType == ListItemType.AlternatingItem)
{

   ((DropDownList)e.Item.FindControl("drp_CompPropAddress")).DataSource =(DataRowView) e.Item.DataItem;//Or any other datasource.
   ((DropDownList)e.Item.FindControl("drp_CompPropAddress")).DataBind();

}

使用Repeater的ItemDataBound事件,像這樣:

protected void rep_UnAssignComps_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
   DropDownList selectList = e.Item.FindControl("drp_CompPropAddress") as DropDownList;
   if (selectList != null)
   {
       selectList.DataSource = SomeDataSource(); //your datasource
       selectList.DataBind();

       //selectList.DataTextField = "SomeColumn";
       //selectList.DataValueField = "SomeID";
   }
}

還記得在標記或 ItemDataBound 事件中設置 DataTextField 和 DataValueField 屬性。

引用自:https://stackoverflow.com/questions/7388610