Hi makifkrpnr,
Check this example. Now please take its reference and correct your code.
HTML
<asp:Repeater ID="rptCustomers" runat="server" OnItemDataBound="rptCustomers_ItemDataBound">
<ItemTemplate>
<div>
<label><%#Eval("Name") %></label>
<asp:DropDownList ID="ddlCountries" runat="server">
</asp:DropDownList>
</div>
</ItemTemplate>
</asp:Repeater>
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
rptCustomers.DataSource = dt;
rptCustomers.DataBind();
}
}
protected void rptCustomers_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
string id = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Id"));
DropDownList ddlCountries = e.Item.FindControl("ddlCountries") as DropDownList;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Id", typeof(int)), new DataColumn("Country", typeof(string)) });
dt.Rows.Add(1, "United States");
dt.Rows.Add(2, "India");
dt.Rows.Add(3, "France");
ddlCountries.DataSource = dt;
ddlCountries.DataTextField = "Country";
ddlCountries.DataValueField = "Id";
ddlCountries.DataBind();
ddlCountries.Items.Insert(0, new ListItem { Text = "Select", Value = "0" });
if (ddlCountries.Items.FindByValue(id) != null)
{
ddlCountries.Items.FindByValue(id).Selected = true;
}
else
{
ddlCountries.SelectedIndex = 0;
}
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not Me.IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(2) {
New DataColumn("Id", GetType(Integer)), New DataColumn("Name", GetType(String)), New DataColumn("Country", GetType(String))})
dt.Rows.Add(1, "John Hammond", "United States")
dt.Rows.Add(2, "Mudassar Khan", "India")
dt.Rows.Add(3, "Suzanne Mathews", "France")
dt.Rows.Add(4, "Robert Schidner", "Russia")
rptCustomers.DataSource = dt
rptCustomers.DataBind()
End If
End Sub
Protected Sub rptCustomers_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
Dim id As String = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Id"))
Dim ddlCountries As DropDownList = TryCast(e.Item.FindControl("ddlCountries"), DropDownList)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(1) {
New DataColumn("Id", GetType(Integer)), New DataColumn("Country", GetType(String))})
dt.Rows.Add(1, "United States")
dt.Rows.Add(2, "India")
dt.Rows.Add(3, "France")
ddlCountries.DataSource = dt
ddlCountries.DataTextField = "Country"
ddlCountries.DataValueField = "Id"
ddlCountries.DataBind()
ddlCountries.Items.Insert(0, New ListItem With {.Text = "Select", .Value = "0"})
If ddlCountries.Items.FindByValue(id) IsNot Nothing Then
ddlCountries.Items.FindByValue(id).Selected = True
Else
ddlCountries.SelectedIndex = 0
End If
End If
End Sub
Screenshot
![](https://i.imgur.com/aJvpeJc.jpg)